{
 "metadata": {
  "name": "",
  "signature": "sha256:5b76069e0e751e9e0117b297530db92683d26f33bad3f8fc2b9ba3e41f085293"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Adding HTML elements to figures"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "This notebook contains examples how to add HTML elements to figures and create interaction between Javascript and Python code.\n",
      "\n",
      "**Note**: this notebook makes interactive calculation when slider position is changed, so you need to download this notebook to see any changes in plot."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%matplotlib inline\n",
      "import matplotlib.pylab as plt\n",
      "import mpld3\n",
      "mpld3.enable_notebook()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Simple example: slider plugin"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "We add a simple slider HTML element ``<input type=\"range\">`` to our figure. When slider position is changed, we call ``kernel.execute()`` and pass updated value to Python function ``runCalculation()``. In this simple example we just update the frequency $\\omega$ of $\\sin(\\omega x)$."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "class SliderView(mpld3.plugins.PluginBase):\n",
      "    \"\"\" Add slider and JavaScript / Python interaction. \"\"\"\n",
      "\n",
      "    JAVASCRIPT = \"\"\"\n",
      "    mpld3.register_plugin(\"sliderview\", SliderViewPlugin);\n",
      "    SliderViewPlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
      "    SliderViewPlugin.prototype.constructor = SliderViewPlugin;\n",
      "    SliderViewPlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
      "    SliderViewPlugin.prototype.defaultProps = {}\n",
      "\n",
      "    function SliderViewPlugin(fig, props){\n",
      "        mpld3.Plugin.call(this, fig, props);\n",
      "    };\n",
      "\n",
      "    SliderViewPlugin.prototype.draw = function(){\n",
      "      var line = mpld3.get_element(this.props.idline);\n",
      "      var callback_func = this.props.callback_func;\n",
      "\n",
      "      var div = d3.select(\"#\" + this.fig.figid);\n",
      "\n",
      "      // Create slider\n",
      "      div.append(\"input\").attr(\"type\", \"range\").attr(\"min\", 0).attr(\"max\", 10).attr(\"step\", 0.1).attr(\"value\", 1)\n",
      "          .on(\"change\", function() {\n",
      "              var command = callback_func + \"(\" + this.value + \")\";\n",
      "              console.log(\"running \"+command);\n",
      "              var callbacks = { 'iopub' : {'output' : handle_output}};\n",
      "              var kernel = IPython.notebook.kernel;\n",
      "              kernel.execute(command, callbacks, {silent:false});\n",
      "          });\n",
      "\n",
      "      function handle_output(out){\n",
      "        //console.log(out);\n",
      "        var res = null;\n",
      "        // if output is a print statement\n",
      "        if (out.msg_type == \"stream\"){\n",
      "          res = out.content.data;\n",
      "        }\n",
      "        // if output is a python object\n",
      "        else if(out.msg_type === \"pyout\"){\n",
      "          res = out.content.data[\"text/plain\"];\n",
      "        }\n",
      "        // if output is a python error\n",
      "        else if(out.msg_type == \"pyerr\"){\n",
      "          res = out.content.ename + \": \" + out.content.evalue;\n",
      "          alert(res);\n",
      "        }\n",
      "        // if output is something we haven't thought of\n",
      "        else{\n",
      "          res = \"[out type not implemented]\";  \n",
      "        }\n",
      "\n",
      "        // Update line data\n",
      "        line.data = JSON.parse(res);\n",
      "        line.elements()\n",
      "          .attr(\"d\", line.datafunc(line.data))\n",
      "          .style(\"stroke\", \"black\");\n",
      "\n",
      "       }\n",
      "\n",
      "    };\n",
      "    \"\"\"\n",
      "\n",
      "    def __init__(self, line, callback_func):\n",
      "        self.dict_ = {\"type\": \"sliderview\",\n",
      "                      \"idline\": mpld3.utils.get_id(line),\n",
      "                      \"callback_func\": callback_func}"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "\n",
      "def updateSlider(val1):\n",
      "    t = np.linspace(0, 10, 500)\n",
      "    y = np.sin(val1*t)\n",
      "    return map(list, list(zip(list(t), list(y))))\n",
      "\n",
      "fig, ax = plt.subplots(figsize=(8, 4))\n",
      "\n",
      "t = np.linspace(0, 10, 500)\n",
      "y = np.sin(t)\n",
      "ax.set_xlabel('Time')\n",
      "ax.set_ylabel('Amplitude')\n",
      "\n",
      "# create the line object\n",
      "line, = ax.plot(t, y, '-k', lw=3, alpha=0.5)\n",
      "ax.set_ylim(-1.2, 1.2)\n",
      "ax.set_title(\"Slider demo\")\n",
      "\n",
      "mpld3.plugins.connect(fig, SliderView(line, callback_func=\"updateSlider\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "\n",
        "\n",
        "<style>\n",
        "\n",
        "</style>\n",
        "\n",
        "<div id=\"fig_el54941400945468073125152164669\"></div>\n",
        "<script>\n",
        "function mpld3_load_lib(url, callback){\n",
        "  var s = document.createElement('script');\n",
        "  s.src = url;\n",
        "  s.async = true;\n",
        "  s.onreadystatechange = s.onload = callback;\n",
        "  s.onerror = function(){console.warn(\"failed to load library \" + url);};\n",
        "  document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
        "}\n",
        "\n",
        "if(typeof(mpld3) !== \"undefined\" && mpld3._mpld3IsLoaded){\n",
        "   // already loaded: just create the figure\n",
        "   !function(mpld3){\n",
        "       \n",
        "    mpld3.register_plugin(\"sliderview\", SliderViewPlugin);\n",
        "    SliderViewPlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
        "    SliderViewPlugin.prototype.constructor = SliderViewPlugin;\n",
        "    SliderViewPlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
        "    SliderViewPlugin.prototype.defaultProps = {}\n",
        "\n",
        "    function SliderViewPlugin(fig, props){\n",
        "        mpld3.Plugin.call(this, fig, props);\n",
        "    };\n",
        "\n",
        "    SliderViewPlugin.prototype.draw = function(){\n",
        "      var line = mpld3.get_element(this.props.idline);\n",
        "      var callback_func = this.props.callback_func;\n",
        "\n",
        "      var div = d3.select(\"#\" + this.fig.figid);\n",
        "\n",
        "      // Create slider\n",
        "      div.append(\"input\").attr(\"type\", \"range\").attr(\"min\", 0).attr(\"max\", 10).attr(\"step\", 0.1).attr(\"value\", 1)\n",
        "          .on(\"change\", function() {\n",
        "              var command = callback_func + \"(\" + this.value + \")\";\n",
        "              console.log(\"running \"+command);\n",
        "              var callbacks = { 'iopub' : {'output' : handle_output}};\n",
        "              var kernel = IPython.notebook.kernel;\n",
        "              kernel.execute(command, callbacks, {silent:false});\n",
        "          });\n",
        "\n",
        "      function handle_output(out){\n",
        "        //console.log(out);\n",
        "        var res = null;\n",
        "        // if output is a print statement\n",
        "        if (out.msg_type == \"stream\"){\n",
        "          res = out.content.data;\n",
        "        }\n",
        "        // if output is a python object\n",
        "        else if(out.msg_type === \"pyout\"){\n",
        "          res = out.content.data[\"text/plain\"];\n",
        "        }\n",
        "        // if output is a python error\n",
        "        else if(out.msg_type == \"pyerr\"){\n",
        "          res = out.content.ename + \": \" + out.content.evalue;\n",
        "          alert(res);\n",
        "        }\n",
        "        // if output is something we haven't thought of\n",
        "        else{\n",
        "          res = \"[out type not implemented]\";  \n",
        "        }\n",
        "\n",
        "        // Update line data\n",
        "        line.data = JSON.parse(res);\n",
        "        line.elements()\n",
        "          .attr(\"d\", line.datafunc(line.data))\n",
        "          .style(\"stroke\", \"black\");\n",
        "\n",
        "       }\n",
        "\n",
        "    };\n",
        "    \n",
        "       mpld3.draw_figure(\"fig_el54941400945468073125152164669\", {\"axes\": [{\"xlim\": [0.0, 10.0], \"yscale\": \"linear\", \"axesbg\": \"#FFFFFF\", \"texts\": [{\"v_baseline\": \"hanging\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Time\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [0.5, -0.080645161290322578], \"rotation\": -0.0, \"id\": \"el5494140094546329232\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Amplitude\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [-0.071131552419354843, 0.5], \"rotation\": -90.0, \"id\": \"el5494140094546464144\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Slider demo\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 12.0, \"position\": [0.5, 1.0224014336917562], \"rotation\": -0.0, \"id\": \"el5494140094546140496\"}], \"zoomable\": true, \"images\": [], \"xdomain\": [0.0, 10.0], \"ylim\": [-1.2, 1.2], \"paths\": [], \"sharey\": [], \"sharex\": [], \"axesbgalpha\": null, \"axes\": [{\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"gridOn\": false}, \"fontsize\": 10.0, \"position\": \"bottom\", \"nticks\": 6, \"tickvalues\": null}, {\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"gridOn\": false}, \"fontsize\": 10.0, \"position\": \"left\", \"nticks\": 7, \"tickvalues\": null}], \"lines\": [{\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 0.5, \"xindex\": 0, \"linewidth\": 3, \"data\": \"data01\", \"id\": \"el5494140094546807248\"}], \"markers\": [], \"id\": \"el5494140094546325648\", \"ydomain\": [-1.2, 1.2], \"collections\": [], \"xscale\": \"linear\", \"bbox\": [0.125, 0.125, 0.77500000000000002, 0.77500000000000002]}], \"height\": 320.0, \"width\": 640.0, \"plugins\": [{\"type\": \"reset\"}, {\"enabled\": false, \"button\": true, \"type\": \"zoom\"}, {\"enabled\": false, \"button\": true, \"type\": \"boxzoom\"}, {\"idline\": \"el5494140094546807248\", \"type\": \"sliderview\", \"callback_func\": \"updateSlider\"}], \"data\": {\"data01\": [[0.0, 0.0], [0.02004008016032064, 0.020038738821815002], [0.04008016032064128, 0.040069430259003856], [0.06012024048096192, 0.06008403015870064], [0.08016032064128256, 0.08007450083026207], [0.1002004008016032, 0.1000328142731347], [0.12024048096192384, 0.1199509554008307], [0.1402805611222445, 0.13982092525971743], [0.16032064128256512, 0.15963474424132812], [0.18036072144288576, 0.17938445528690403], [0.2004008016032064, 0.1990621270828803], [0.22044088176352705, 0.2186598572460333], [0.24048096192384769, 0.2381697754970093], [0.2605210420841683, 0.25758404682096103], [0.280561122244489, 0.2768948746140219], [0.3006012024048096, 0.29609450381435476], [0.32064128256513025, 0.31517522401651815], [0.3406813627254509, 0.3341293725678981], [0.3607214428857715, 0.35294933764596376], [0.3807615230460922, 0.3716275613151095], [0.4008016032064128, 0.3901565425618566], [0.42084168336673344, 0.4085288403071956], [0.4408817635270541, 0.4267370763948594], [0.4609218436873747, 0.4447739385543271], [0.48096192384769537, 0.4626321833373691], [0.501002004008016, 0.48030463902695275], [0.5210420841683366, 0.49778420851734273], [0.5410821643286573, 0.5150638721642371], [0.561122244488978, 0.532136690603796], [0.5811623246492986, 0.5489958075394302], [0.6012024048096192, 0.5656344524952307], [0.6212424849699398, 0.5820459435349337], [0.6412825651302605, 0.598223689945328], [0.6613226452905812, 0.6141611948830293], [0.6813627254509018, 0.6298520579835557], [0.7014028056112224, 0.6452899779316592], [0.721442885771543, 0.66046875499188], [0.7414829659318637, 0.6753822934983056], [0.7615230460921844, 0.6900246043025389], [0.781563126252505, 0.7043898071788878], [0.8016032064128256, 0.718472133185813], [0.8216432865731462, 0.7322659269826862], [0.8416833667334669, 0.7457656491009247], [0.8617234468937875, 0.7589658781685948], [0.8817635270541082, 0.7718613130875883], [0.9018036072144289, 0.7844467751624975], [0.9218436873747494, 0.7967172101803344], [0.9418837675350701, 0.8086676904402592], [0.9619238476953907, 0.8202934167325028], [0.9819639278557114, 0.8315897202656872], [1.002004008016032, 0.8425520645417728], [1.0220440881763526, 0.8531760471778762], [1.0420841683366733, 0.8634574016742292], [1.062124248496994, 0.873391999127569], [1.0821643286573146, 0.882975849889269], [1.1022044088176353, 0.8922051051675485], [1.122244488977956, 0.9010760585731131], [1.1422845691382766, 0.9095851476076096], [1.1623246492985972, 0.9177289550942941], [1.1823647294589177, 0.9255042105503407], [1.2024048096192383, 0.9329077915002397], [1.222444889779559, 0.9399367247297561], [1.2424849699398797, 0.9465881874799471], [1.2625250501002003, 0.952859508580758], [1.282565130260521, 0.9587481695237406], [1.3026052104208417, 0.9642518054734649], [1.3226452905811623, 0.9693682062172161], [1.342685370741483, 0.9740953170525974], [1.3627254509018036, 0.9784312396126806], [1.3827655310621243, 0.9823742326283739], [1.4028056112224447, 0.9859227126277003], [1.4228456913827654, 0.9890752545717068], [1.442885771543086, 0.9918305924267473], [1.4629258517034067, 0.9941876196729109], [1.4829659318637274, 0.9961453897483908], [1.503006012024048, 0.9977031164296156], [1.5230460921843687, 0.9988601741469894], [1.5430861723446894, 0.9996160982361152], [1.56312625250501, 0.9999705851244007], [1.5831663326653307, 0.9999234924529701], [1.6032064128256511, 0.9994748391338337], [1.6232464929859718, 0.9986248053422938], [1.6432865731462925, 0.9973737324445874], [1.6633266533066131, 0.9957221228607965], [1.6833667334669338, 0.9936706398630807], [1.7034068136272544, 0.9912201073093126], [1.723446893787575, 0.988371509312224], [1.7434869739478958, 0.9851259898441939], [1.7635270541082164, 0.9814848522778399], [1.783567134268537, 0.9774495588625948], [1.8036072144288577, 0.9730217301374795], [1.8236472945891782, 0.9682031442803087], [1.8436873747494988, 0.9629957363935905], [1.8637274549098195, 0.9574015977274047], [1.8837675350701402, 0.9514229748395765], [1.9038076152304608, 0.9450622686934768], [1.9238476953907815, 0.9383220336938165], [1.9438877755511021, 0.9312049766608204], [1.9639278557114228, 0.9237139557431898], [1.9839679358717435, 0.9158519792702968], [2.004008016032064, 0.9076222045440633], [2.024048096192385, 0.8990279365710167], [2.0440881763527052, 0.8900726267350278], [2.064128256513026, 0.8807598714112645], [2.0841683366733466, 0.8710934105219191], [2.1042084168336674, 0.8610771260342868], [2.124248496993988, 0.8507150404018025], [2.1442885771543083, 0.8400113149486567], [2.164328657314629, 0.8289702481986446], [2.1843687374749496, 0.8175962741489164], [2.2044088176352705, 0.8058939604893209], [2.224448897795591, 0.7938680067680622], [2.244488977955912, 0.7815232425044001], [2.2645290581162323, 0.7688646252491586], [2.284569138276553, 0.7558972385938142], [2.3046092184368736, 0.7426262901289721], [2.3246492985971945, 0.7290571093530397], [2.344689378757515, 0.7151951455319486], [2.3647294589178354, 0.7010459655107749], [2.3847695390781563, 0.6866152514781423], [2.4048096192384767, 0.6719087986843055], [2.4248496993987976, 0.6569325131138257], [2.444889779559118, 0.6416924091137806], [2.464929859719439, 0.6261946069784511], [2.4849699398797593, 0.6104453304914682], [2.50501002004008, 0.594450904426391], [2.5250501002004007, 0.5782177520067356], [2.5450901803607215, 0.5617523923264612], [2.565130260521042, 0.5450614377319608], [2.5851703406813624, 0.5281515911665976], [2.6052104208416833, 0.5110296434788618], [2.6252505010020037, 0.4937024706952255], [2.6452905811623246, 0.47617703125878724], [2.665330661322645, 0.45846036323482436], [2.685370741482966, 0.4405595814843635], [2.7054108216432864, 0.42248187480691707], [2.7254509018036073, 0.4042345030535201], [2.7454909819639277, 0.3858247942112399], [2.7655310621242486, 0.3672601414603165], [2.785571142284569, 0.3485480002051285], [2.8056112224448895, 0.32969588508016423], [2.8256513026052104, 0.3107113669322103], [2.845691382765531, 0.2916020697799665], [2.8657314629258517, 0.27237566775230226], [2.885771543086172, 0.25303988200639665], [2.905811623246493, 0.23360247762698433], [2.9258517034068134, 0.2140712605079683], [2.9458917835671343, 0.19445407421763666], [2.9659318637274548, 0.17475879684875675], [2.9859719438877756, 0.15499333785479757], [3.006012024048096, 0.135165634873565], [3.0260521042084165, 0.1152836505395119], [3.0460921843687374, 0.09535536928601408], [3.066132264529058, 0.07538879413889213], [3.0861723446893787, 0.055391943502462154], [3.106212424849699, 0.03537284793941732], [3.12625250501002, 0.01533954694581965], [3.1462925851703405, -0.0046999142774887155], [3.1663326653306614, -0.02473748805577231], [3.186372745490982, -0.04476512747227552], [3.2064128256513023, -0.06477478959979804], [3.226452905811623, -0.08475843873066376], [3.2464929859719436, -0.10470804960379021], [3.2665330661322645, -0.12461561062756739], [3.286573146292585, -0.1444731270972402], [3.306613226452906, -0.1642726244055165], [3.3266533066132262, -0.184006151245097], [3.346693386773547, -0.2036657828018553], [3.3667334669338675, -0.2232436239373713], [3.3867735470941884, -0.24273181235955404], [3.406813627254509, -0.2621225217800672], [3.4268537074148293, -0.28140796505730165], [3.44689378757515, -0.3005803973236234], [3.4669338677354706, -0.31963211909564393], [3.4869739478957915, -0.33855547936626973], [3.507014028056112, -0.35734287867727693], [3.527054108216433, -0.37598677217119186], [3.5470941883767533, -0.39447967262123707], [3.567134268537074, -0.4128141534381407], [3.5871743486973946, -0.43098285165258693], [3.6072144288577155, -0.44897847087212456], [3.627254509018036, -0.46679378421133183], [3.6472945891783564, -0.48442163719407416], [3.6673346693386772, -0.5018549506266788], [3.6873747494989977, -0.5190867234408767], [3.7074148296593186, -0.5361100355053741], [3.727454909819639, -0.552918050404914], [3.74749498997996, -0.5695040181857252], [3.7675350701402803, -0.5858612780662419], [3.787575150300601, -0.6019832611120195], [3.8076152304609217, -0.6178634928737587], [3.8276553106212425, -0.6334955959873921], [3.847695390781563, -0.6488732927351748], [3.8677354709418834, -0.6639904075667645], [3.8877755511022043, -0.6788408695792686], [3.9078156312625247, -0.6934187149552649], [3.9278557114228456, -0.7077180893578217], [3.947895791583166, -0.7217332502815464], [3.967935871743487, -0.7354585693587291], [3.9879759519038074, -0.748888534619643], [4.008016032064128, -0.762017752706107], [4.028056112224449, -0.7748409510374107], [4.04809619238477, -0.7873529799277361], [4.06813627254509, -0.7995488146542284], [4.0881763527054105, -0.8114235574748823], [4.108216432865731, -0.82297243959543], [4.128256513026052, -0.8341908230844503], [4.148296593186372, -0.8450742027359202], [4.168336673346693, -0.8556182078784694], [4.188376753507014, -0.8658186041306007], [4.208416833667335, -0.8756712951011836], [4.228456913827655, -0.8851723240345281], [4.248496993987976, -0.8943178753993856], [4.268537074148297, -0.9031042764212313], [4.288577154308617, -0.9115279985572191], [4.3086172344689375, -0.919585658913216], [4.328657314629258, -0.9272740216023401], [4.348697394789579, -0.934589999044467], [4.368737474949899, -0.9415306532061747], [4.38877755511022, -0.9480931967806329], [4.408817635270541, -0.9542749943069602], [4.428857715430862, -0.9600735632286037], [4.448897795591182, -0.9654865748903116], [4.468937875751503, -0.9705118554733019], [4.488977955911824, -0.975147386868248], [4.509018036072144, -0.9793913074857344], [4.529058116232465, -0.9832419130038563], [4.5490981963927855, -0.9866976570526585], [4.569138276553106, -0.9897571518351457], [4.589178356713426, -0.9924191686846087], [4.609218436873747, -0.9946826385580477], [4.629258517034068, -0.9965466524654897], [4.649298597194389, -0.9980104618350312], [4.669338677354709, -0.9990734788134583], [4.68937875751503, -0.9997352765023239], [4.709418837675351, -0.9999955891293857], [4.729458917835671, -0.9998543121553386], [4.749498997995992, -0.9993115023157965], [4.7695390781563125, -0.9983673775985077], [4.789579158316633, -0.9970223171558134], [4.809619238476953, -0.9952768611523827], [4.829659318637274, -0.9931317105482877], [4.849699398797595, -0.9905877268175036], [4.869739478957916, -0.9876459316019486], [4.889779559118236, -0.9843075063012007], [4.909819639278557, -0.9805737915980582], [4.929859719438878, -0.9764462869201334], [4.949899799599198, -0.971926649837695], [4.969939879759519, -0.9670166953980014], [4.98997995991984, -0.9617183953963953], [5.01002004008016, -0.9560338775844459], [5.03006012024048, -0.9499654248154636], [5.050100200400801, -0.9435154741277243], [5.070140280561122, -0.936686615765777], [5.090180360721443, -0.9294815921402241], [5.110220440881763, -0.9219032967263922], [5.130260521042084, -0.913954772902337], [5.150300601202405, -0.9056392127266504], [5.170340681362725, -0.8969599556565567], [5.190380761523046, -0.8879204872068142], [5.210420841683367, -0.8785244375499641], [5.2304609218436875, -0.8687755800584842], [5.2505010020040075, -0.858677829789435], [5.270541082164328, -0.8482352419122049], [5.290581162324649, -0.8374520100799925], [5.31062124248497, -0.8263324647456687], [5.33066132264529, -0.8148810714227064], [5.350701402805611, -0.8031024288918657], [5.370741482965932, -0.791001267354367], [5.390781563126252, -0.7785824465322816], [5.410821643286573, -0.7658509537169064], [5.430861723446894, -0.7528119017659156], [5.4509018036072145, -0.739470527050078], [5.4709418837675345, -0.725832187350377], [5.490981963927855, -0.7119023597063697], [5.511022044088176, -0.6976866382166587], [5.531062124248497, -0.6831907317923477], [5.551102204408817, -0.6684204618643936], [5.571142284569138, -0.6533817600457673], [5.591182364729459, -0.6380806657493732], [5.611222444889779, -0.6225233237626706], [5.6312625250501, -0.6067159817799789], [5.651302605210421, -0.5906649878934608], [5.671342685370742, -0.5743767880437806], [5.691382765531062, -0.557857923431472], [5.7114228456913825, -0.541115027890045], [5.731462925851703, -0.5241548252218998], [5.751503006012024, -0.5069841264981036], [5.771543086172344, -0.4896098273231241], [5.791583166332665, -0.472038905065611], [5.811623246492986, -0.4542784160563504], [5.831663326653306, -0.43633549275449995], [5.851703406813627, -0.41821734088325324], [5.871743486973948, -0.39993123653608775], [5.891783567134269, -0.3814845232547455], [5.911823647294589, -0.36288460908013165], [5.9318637274549095, -0.34413896357730583], [5.95190380761523, -0.3252551148357744], [5.971943887775551, -0.306240646446271], [5.991983967935871, -0.28710319445525406], [6.012024048096192, -0.26785044429833255], [6.032064128256513, -0.24849012771386683], [6.052104208416833, -0.22903001963796651], [6.072144288577154, -0.20947793508214058], [6.092184368737475, -0.18984172599486143], [6.112224448897796, -0.17012927810828674], [6.132264529058116, -0.15034850777141895], [6.152304609218437, -0.13050735877096456], [6.1723446893787575, -0.11061379914118305], [6.192384769539078, -0.09067581796398959], [6.212424849699398, -0.07070142216061043], [6.232464929859719, -0.05069863327606886], [6.25250501002004, -0.030675484257807268], [6.27254509018036, -0.01064001622972209], [6.292585170340681, 0.009399724737084841], [6.312625250501002, 0.029435690855533707], [6.332665330661323, 0.0494598358544921], [6.352705410821643, 0.06946411821008634], [6.372745490981964, 0.08944050437511161], [6.3927855711422845, 0.10938097200522988], [6.4128256513026045, 0.12927751318067687], [6.432865731462925, 0.14912213762217616], [6.452905811623246, 0.16890687589976114], [6.472945891783567, 0.1886237826332328], [6.492985971943887, 0.2082649396829542], [6.513026052104208, 0.22782245932971043], [6.533066132264529, 0.2472884874423435], [6.55310621242485, 0.2666552066319069], [6.57314629258517, 0.28591483939106016], [6.593186372745491, 0.3050596512174518], [6.613226452905812, 0.32408195371982385], [6.633266533066132, 0.3429741077056058], [6.6533066132264524, 0.3617285262487512], [6.673346693386773, 0.38033767773657645], [6.693386773547094, 0.3987940888943949], [6.713426853707414, 0.41709034778671794], [6.733466933867735, 0.4352191067938274], [6.753507014028056, 0.4531730855625115], [6.773547094188377, 0.4709450739297952], [6.793587174348697, 0.4885279348184775], [6.813627254509018, 0.5059146071033237], [6.833667334669339, 0.5230981084467474], [6.853707414829659, 0.5400715381028593], [6.8737474949899795, 0.5568280796887498], [6.8937875751503, 0.5733610039218846], [6.913827655310621, 0.5896636713225298], [6.933867735470941, 0.6057295348801084], [6.953907815631262, 0.6215521426824256], [6.973947895791583, 0.6371251405066972], [6.993987975951904, 0.6524422743713535], [7.014028056112224, 0.6674973930475826], [7.034068136272545, 0.6822844505296138], [7.054108216432866, 0.6967975084627376], [7.074148296593186, 0.7110307385280988], [7.0941883767535066, 0.7249784247833022], [7.114228456913827, 0.738634965957881], [7.134268537074148, 0.7519948777027217], [7.154308617234468, 0.7650527947925297], [7.174348697394789, 0.7778034732804606], [7.19438877755511, 0.7902417926040398], [7.214428857715431, 0.8023627576415389], [7.234468937875751, 0.8141615007179721], [7.254509018036072, 0.8256332835599149], [7.274549098196393, 0.8367734991983506], [7.294589178356713, 0.8475776738187908], [7.314629258517034, 0.8580414685579221], [7.3346693386773545, 0.8681606812460534], [7.354709418837675, 0.877931248094673], [7.374749498997995, 0.8873492453284297], [7.394789579158316, 0.8964108907608895], [7.414829659318637, 0.9051125453134257], [7.434869739478958, 0.9134507144766437], [7.454909819639278, 0.921422049713745], [7.474949899799599, 0.929023349805272], [7.49498997995992, 0.936251562134688], [7.51503006012024, 0.9431037839142826], [7.535070140280561, 0.9495772633509076], [7.5551102204408815, 0.9556694007510711], [7.575150300601202, 0.961377749564953], [7.595190380761522, 0.9667000173689185], [7.615230460921843, 0.9716340667861361], [7.635270541082164, 0.976177916344928], [7.655310621242485, 0.9803297412745137], [7.675350701402805, 0.9840878742378212], [7.695390781563126, 0.9874508060010762], [7.715430861723447, 0.9904171860398961], [7.735470941883767, 0.99298582308165], [7.755511022044088, 0.9951556855838627], [7.775551102204409, 0.996925902148474], [7.7955911823647295, 0.9982957618717841], [7.8156312625250495, 0.9992647146299466], [7.83567134268537, 0.9998323712998934], [7.855711422845691, 0.9999985039156035], [7.875751503006012, 0.9997630457596517], [7.895791583166332, 0.999126091390002], [7.915831663326653, 0.9980878966020338], [7.935871743486974, 0.996648878325817], [7.955911823647294, 0.9948096144586761], [7.975951903807615, 0.992570843633112], [7.995991983967936, 0.989933464920173], [8.016032064128256, 0.9868985374683963], [8.036072144288577, 0.9834672800784626], [8.056112224448897, 0.9796410707137363], [8.076152304609218, 0.9754214459468878], [8.09619238476954, 0.9708101003428183], [8.11623246492986, 0.9658088857781382], [8.13627254509018, 0.9604198106974688], [8.1563126252505, 0.9546450393068674], [8.176352705410821, 0.9484868907047028], [8.196392785571142, 0.9419478379503241], [8.216432865731463, 0.9350305070709015], [8.236472945891784, 0.927737676006837], [8.256513026052104, 0.9200722734961667], [8.276553106212425, 0.9120373778984054], [8.296593186372744, 0.9036362159583048], [8.316633266533065, 0.8948721615100172], [8.336673346693386, 0.8857487341221979], [8.356713426853707, 0.876269597684573], [8.376753507014028, 0.8664385589365545], [8.396793587174349, 0.8562595659384861], [8.41683366733467, 0.8457367064861362], [8.436873747494989, 0.8348742064690758], [8.45691382765531, 0.8236764281735933], [8.47695390781563, 0.812147868530844], [8.496993987975952, 0.8002931573109174], [8.517034068136272, 0.7881170552635628], [8.537074148296593, 0.7756244522063128], [8.557114228456914, 0.7628203650607748], [8.577154308617233, 0.7497099358378803], [8.597194388777554, 0.736298429572892], [8.617234468937875, 0.7225912322110194], [8.637274549098196, 0.7085938484444636], [8.657314629258517, 0.6943118995017825], [8.677354709418838, 0.6797511208904538], [8.697394789579159, 0.6649173600935442], [8.71743486973948, 0.6498165742214111], [8.737474949899799, 0.6344548276193799], [8.75751503006012, 0.6188382894323492], [8.77755511022044, 0.6029732311273244], [8.797595190380761, 0.5868660239748446], [8.817635270541082, 0.5705231364903367], [8.837675350701403, 0.5539511318364162], [8.857715430861724, 0.5371566651871765], [8.877755511022043, 0.520146481055531], [8.897795591182364, 0.5029274105846679], [8.917835671342685, 0.48550636880473225], [8.937875751503006, 0.4678903518558021], [8.957915831663327, 0.4500864341783016], [8.977955911823647, 0.4321017656719664], [8.997995991983968, 0.41394356882450545], [9.018036072144287, 0.3956191358111141], [9.038076152304608, 0.37713582556599273], [9.05811623246493, 0.3585010608270722], [9.07815631262525, 0.3397223251550999], [9.098196392785571, 0.32080715992830766], [9.118236472945892, 0.30176316131385944], [9.138276553106213, 0.2825979772172964], [9.158316633266534, 0.26331930421120353], [9.178356713426853, 0.24393488444433464], [9.198396793587174, 0.22445250253242513], [9.218436873747494, 0.20487998243196784], [9.238476953907815, 0.18522518429817272], [9.258517034068136, 0.1654960013283981], [9.278557114228457, 0.1457003565923106], [9.298597194388778, 0.12584619985004888], [9.318637274549097, 0.10594150435967019], [9.338677354709418, 0.0859942636751517], [9.358717434869739, 0.06601248843625881], [9.37875751503006, 0.04600420315153421], [9.39879759519038, 0.025977442975726295], [9.418837675350701, 0.005940250482940325], [9.438877755511022, -0.014099327563189943], [9.458917835671341, -0.03413324344101134], [9.478957915831662, -0.05415345170275396], [9.498997995991983, -0.07415191240550292], [9.519038076152304, -0.0941205943399772], [9.539078156312625, -0.11405147825579219], [9.559118236472946, -0.13393656008192145], [9.579158316633267, -0.15376785414106262], [9.599198396793588, -0.17353739635661652], [9.619238476953907, -0.19323724745098983], [9.639278557114228, -0.21285949613394742], [9.659318637274549, -0.23239626227970794], [9.67935871743487, -0.25183970009154116], [9.69939879759519, -0.27118200125257047], [9.719438877755511, -0.2904153980615259], [9.739478957915832, -0.3095321665521854], [9.759519038076151, -0.32852462959525197], [9.779559118236472, -0.3473851599814287], [9.799599198396793, -0.3661061834844305], [9.819639278557114, -0.3846801819027346], [9.839679358717435, -0.40309969607882395], [9.859719438877756, -0.42135732889472005], [9.879759519038076, -0.43944574824260235], [9.899799599198396, -0.4573576899693173], [9.919839679358716, -0.4750859607936063], [9.939879759519037, -0.49262344119485596], [9.959919839679358, -0.509963088272242], [9.97995991983968, -0.5270979385730965], [10.0, -0.5440211108893698]]}, \"id\": \"el5494140094546807312\"});\n",
        "   }(mpld3);\n",
        "}else if(typeof define === \"function\" && define.amd){\n",
        "   // require.js is available: use it to load d3/mpld3\n",
        "   require.config({paths: {d3: \"https://mpld3.github.io/js/d3.v3.min\"}});\n",
        "   require([\"d3\"], function(d3){\n",
        "      window.d3 = d3;\n",
        "      mpld3_load_lib(\"https://mpld3.github.io/js/mpld3.v0.2.js\", function(){\n",
        "         \n",
        "    mpld3.register_plugin(\"sliderview\", SliderViewPlugin);\n",
        "    SliderViewPlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
        "    SliderViewPlugin.prototype.constructor = SliderViewPlugin;\n",
        "    SliderViewPlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
        "    SliderViewPlugin.prototype.defaultProps = {}\n",
        "\n",
        "    function SliderViewPlugin(fig, props){\n",
        "        mpld3.Plugin.call(this, fig, props);\n",
        "    };\n",
        "\n",
        "    SliderViewPlugin.prototype.draw = function(){\n",
        "      var line = mpld3.get_element(this.props.idline);\n",
        "      var callback_func = this.props.callback_func;\n",
        "\n",
        "      var div = d3.select(\"#\" + this.fig.figid);\n",
        "\n",
        "      // Create slider\n",
        "      div.append(\"input\").attr(\"type\", \"range\").attr(\"min\", 0).attr(\"max\", 10).attr(\"step\", 0.1).attr(\"value\", 1)\n",
        "          .on(\"change\", function() {\n",
        "              var command = callback_func + \"(\" + this.value + \")\";\n",
        "              console.log(\"running \"+command);\n",
        "              var callbacks = { 'iopub' : {'output' : handle_output}};\n",
        "              var kernel = IPython.notebook.kernel;\n",
        "              kernel.execute(command, callbacks, {silent:false});\n",
        "          });\n",
        "\n",
        "      function handle_output(out){\n",
        "        //console.log(out);\n",
        "        var res = null;\n",
        "        // if output is a print statement\n",
        "        if (out.msg_type == \"stream\"){\n",
        "          res = out.content.data;\n",
        "        }\n",
        "        // if output is a python object\n",
        "        else if(out.msg_type === \"pyout\"){\n",
        "          res = out.content.data[\"text/plain\"];\n",
        "        }\n",
        "        // if output is a python error\n",
        "        else if(out.msg_type == \"pyerr\"){\n",
        "          res = out.content.ename + \": \" + out.content.evalue;\n",
        "          alert(res);\n",
        "        }\n",
        "        // if output is something we haven't thought of\n",
        "        else{\n",
        "          res = \"[out type not implemented]\";  \n",
        "        }\n",
        "\n",
        "        // Update line data\n",
        "        line.data = JSON.parse(res);\n",
        "        line.elements()\n",
        "          .attr(\"d\", line.datafunc(line.data))\n",
        "          .style(\"stroke\", \"black\");\n",
        "\n",
        "       }\n",
        "\n",
        "    };\n",
        "    \n",
        "         mpld3.draw_figure(\"fig_el54941400945468073125152164669\", {\"axes\": [{\"xlim\": [0.0, 10.0], \"yscale\": \"linear\", \"axesbg\": \"#FFFFFF\", \"texts\": [{\"v_baseline\": \"hanging\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Time\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [0.5, -0.080645161290322578], \"rotation\": -0.0, \"id\": \"el5494140094546329232\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Amplitude\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [-0.071131552419354843, 0.5], \"rotation\": -90.0, \"id\": \"el5494140094546464144\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Slider demo\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 12.0, \"position\": [0.5, 1.0224014336917562], \"rotation\": -0.0, \"id\": \"el5494140094546140496\"}], \"zoomable\": true, \"images\": [], \"xdomain\": [0.0, 10.0], \"ylim\": [-1.2, 1.2], \"paths\": [], \"sharey\": [], \"sharex\": [], \"axesbgalpha\": null, \"axes\": [{\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"gridOn\": false}, \"fontsize\": 10.0, \"position\": \"bottom\", \"nticks\": 6, \"tickvalues\": null}, {\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"gridOn\": false}, \"fontsize\": 10.0, \"position\": \"left\", \"nticks\": 7, \"tickvalues\": null}], \"lines\": [{\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 0.5, \"xindex\": 0, \"linewidth\": 3, \"data\": \"data01\", \"id\": \"el5494140094546807248\"}], \"markers\": [], \"id\": \"el5494140094546325648\", \"ydomain\": [-1.2, 1.2], \"collections\": [], \"xscale\": \"linear\", \"bbox\": [0.125, 0.125, 0.77500000000000002, 0.77500000000000002]}], \"height\": 320.0, \"width\": 640.0, \"plugins\": [{\"type\": \"reset\"}, {\"enabled\": false, \"button\": true, \"type\": \"zoom\"}, {\"enabled\": false, \"button\": true, \"type\": \"boxzoom\"}, {\"idline\": \"el5494140094546807248\", \"type\": \"sliderview\", \"callback_func\": \"updateSlider\"}], \"data\": {\"data01\": [[0.0, 0.0], [0.02004008016032064, 0.020038738821815002], [0.04008016032064128, 0.040069430259003856], [0.06012024048096192, 0.06008403015870064], [0.08016032064128256, 0.08007450083026207], [0.1002004008016032, 0.1000328142731347], [0.12024048096192384, 0.1199509554008307], [0.1402805611222445, 0.13982092525971743], [0.16032064128256512, 0.15963474424132812], [0.18036072144288576, 0.17938445528690403], [0.2004008016032064, 0.1990621270828803], [0.22044088176352705, 0.2186598572460333], [0.24048096192384769, 0.2381697754970093], [0.2605210420841683, 0.25758404682096103], [0.280561122244489, 0.2768948746140219], [0.3006012024048096, 0.29609450381435476], [0.32064128256513025, 0.31517522401651815], [0.3406813627254509, 0.3341293725678981], [0.3607214428857715, 0.35294933764596376], [0.3807615230460922, 0.3716275613151095], [0.4008016032064128, 0.3901565425618566], [0.42084168336673344, 0.4085288403071956], [0.4408817635270541, 0.4267370763948594], [0.4609218436873747, 0.4447739385543271], [0.48096192384769537, 0.4626321833373691], [0.501002004008016, 0.48030463902695275], [0.5210420841683366, 0.49778420851734273], [0.5410821643286573, 0.5150638721642371], [0.561122244488978, 0.532136690603796], [0.5811623246492986, 0.5489958075394302], [0.6012024048096192, 0.5656344524952307], [0.6212424849699398, 0.5820459435349337], [0.6412825651302605, 0.598223689945328], [0.6613226452905812, 0.6141611948830293], [0.6813627254509018, 0.6298520579835557], [0.7014028056112224, 0.6452899779316592], [0.721442885771543, 0.66046875499188], [0.7414829659318637, 0.6753822934983056], [0.7615230460921844, 0.6900246043025389], [0.781563126252505, 0.7043898071788878], [0.8016032064128256, 0.718472133185813], [0.8216432865731462, 0.7322659269826862], [0.8416833667334669, 0.7457656491009247], [0.8617234468937875, 0.7589658781685948], [0.8817635270541082, 0.7718613130875883], [0.9018036072144289, 0.7844467751624975], [0.9218436873747494, 0.7967172101803344], [0.9418837675350701, 0.8086676904402592], [0.9619238476953907, 0.8202934167325028], [0.9819639278557114, 0.8315897202656872], [1.002004008016032, 0.8425520645417728], [1.0220440881763526, 0.8531760471778762], [1.0420841683366733, 0.8634574016742292], [1.062124248496994, 0.873391999127569], [1.0821643286573146, 0.882975849889269], [1.1022044088176353, 0.8922051051675485], [1.122244488977956, 0.9010760585731131], [1.1422845691382766, 0.9095851476076096], [1.1623246492985972, 0.9177289550942941], [1.1823647294589177, 0.9255042105503407], [1.2024048096192383, 0.9329077915002397], [1.222444889779559, 0.9399367247297561], [1.2424849699398797, 0.9465881874799471], [1.2625250501002003, 0.952859508580758], [1.282565130260521, 0.9587481695237406], [1.3026052104208417, 0.9642518054734649], [1.3226452905811623, 0.9693682062172161], [1.342685370741483, 0.9740953170525974], [1.3627254509018036, 0.9784312396126806], [1.3827655310621243, 0.9823742326283739], [1.4028056112224447, 0.9859227126277003], [1.4228456913827654, 0.9890752545717068], [1.442885771543086, 0.9918305924267473], [1.4629258517034067, 0.9941876196729109], [1.4829659318637274, 0.9961453897483908], [1.503006012024048, 0.9977031164296156], [1.5230460921843687, 0.9988601741469894], [1.5430861723446894, 0.9996160982361152], [1.56312625250501, 0.9999705851244007], [1.5831663326653307, 0.9999234924529701], [1.6032064128256511, 0.9994748391338337], [1.6232464929859718, 0.9986248053422938], [1.6432865731462925, 0.9973737324445874], [1.6633266533066131, 0.9957221228607965], [1.6833667334669338, 0.9936706398630807], [1.7034068136272544, 0.9912201073093126], [1.723446893787575, 0.988371509312224], [1.7434869739478958, 0.9851259898441939], [1.7635270541082164, 0.9814848522778399], [1.783567134268537, 0.9774495588625948], [1.8036072144288577, 0.9730217301374795], [1.8236472945891782, 0.9682031442803087], [1.8436873747494988, 0.9629957363935905], [1.8637274549098195, 0.9574015977274047], [1.8837675350701402, 0.9514229748395765], [1.9038076152304608, 0.9450622686934768], [1.9238476953907815, 0.9383220336938165], [1.9438877755511021, 0.9312049766608204], [1.9639278557114228, 0.9237139557431898], [1.9839679358717435, 0.9158519792702968], [2.004008016032064, 0.9076222045440633], [2.024048096192385, 0.8990279365710167], [2.0440881763527052, 0.8900726267350278], [2.064128256513026, 0.8807598714112645], [2.0841683366733466, 0.8710934105219191], [2.1042084168336674, 0.8610771260342868], [2.124248496993988, 0.8507150404018025], [2.1442885771543083, 0.8400113149486567], [2.164328657314629, 0.8289702481986446], [2.1843687374749496, 0.8175962741489164], [2.2044088176352705, 0.8058939604893209], [2.224448897795591, 0.7938680067680622], [2.244488977955912, 0.7815232425044001], [2.2645290581162323, 0.7688646252491586], [2.284569138276553, 0.7558972385938142], [2.3046092184368736, 0.7426262901289721], [2.3246492985971945, 0.7290571093530397], [2.344689378757515, 0.7151951455319486], [2.3647294589178354, 0.7010459655107749], [2.3847695390781563, 0.6866152514781423], [2.4048096192384767, 0.6719087986843055], [2.4248496993987976, 0.6569325131138257], [2.444889779559118, 0.6416924091137806], [2.464929859719439, 0.6261946069784511], [2.4849699398797593, 0.6104453304914682], [2.50501002004008, 0.594450904426391], [2.5250501002004007, 0.5782177520067356], [2.5450901803607215, 0.5617523923264612], [2.565130260521042, 0.5450614377319608], [2.5851703406813624, 0.5281515911665976], [2.6052104208416833, 0.5110296434788618], [2.6252505010020037, 0.4937024706952255], [2.6452905811623246, 0.47617703125878724], [2.665330661322645, 0.45846036323482436], [2.685370741482966, 0.4405595814843635], [2.7054108216432864, 0.42248187480691707], [2.7254509018036073, 0.4042345030535201], [2.7454909819639277, 0.3858247942112399], [2.7655310621242486, 0.3672601414603165], [2.785571142284569, 0.3485480002051285], [2.8056112224448895, 0.32969588508016423], [2.8256513026052104, 0.3107113669322103], [2.845691382765531, 0.2916020697799665], [2.8657314629258517, 0.27237566775230226], [2.885771543086172, 0.25303988200639665], [2.905811623246493, 0.23360247762698433], [2.9258517034068134, 0.2140712605079683], [2.9458917835671343, 0.19445407421763666], [2.9659318637274548, 0.17475879684875675], [2.9859719438877756, 0.15499333785479757], [3.006012024048096, 0.135165634873565], [3.0260521042084165, 0.1152836505395119], [3.0460921843687374, 0.09535536928601408], [3.066132264529058, 0.07538879413889213], [3.0861723446893787, 0.055391943502462154], [3.106212424849699, 0.03537284793941732], [3.12625250501002, 0.01533954694581965], [3.1462925851703405, -0.0046999142774887155], [3.1663326653306614, -0.02473748805577231], [3.186372745490982, -0.04476512747227552], [3.2064128256513023, -0.06477478959979804], [3.226452905811623, -0.08475843873066376], [3.2464929859719436, -0.10470804960379021], [3.2665330661322645, -0.12461561062756739], [3.286573146292585, -0.1444731270972402], [3.306613226452906, -0.1642726244055165], [3.3266533066132262, -0.184006151245097], [3.346693386773547, -0.2036657828018553], [3.3667334669338675, -0.2232436239373713], [3.3867735470941884, -0.24273181235955404], [3.406813627254509, -0.2621225217800672], [3.4268537074148293, -0.28140796505730165], [3.44689378757515, -0.3005803973236234], [3.4669338677354706, -0.31963211909564393], [3.4869739478957915, -0.33855547936626973], [3.507014028056112, -0.35734287867727693], [3.527054108216433, -0.37598677217119186], [3.5470941883767533, -0.39447967262123707], [3.567134268537074, -0.4128141534381407], [3.5871743486973946, -0.43098285165258693], [3.6072144288577155, -0.44897847087212456], [3.627254509018036, -0.46679378421133183], [3.6472945891783564, -0.48442163719407416], [3.6673346693386772, -0.5018549506266788], [3.6873747494989977, -0.5190867234408767], [3.7074148296593186, -0.5361100355053741], [3.727454909819639, -0.552918050404914], [3.74749498997996, -0.5695040181857252], [3.7675350701402803, -0.5858612780662419], [3.787575150300601, -0.6019832611120195], [3.8076152304609217, -0.6178634928737587], [3.8276553106212425, -0.6334955959873921], [3.847695390781563, -0.6488732927351748], [3.8677354709418834, -0.6639904075667645], [3.8877755511022043, -0.6788408695792686], [3.9078156312625247, -0.6934187149552649], [3.9278557114228456, -0.7077180893578217], [3.947895791583166, -0.7217332502815464], [3.967935871743487, -0.7354585693587291], [3.9879759519038074, -0.748888534619643], [4.008016032064128, -0.762017752706107], [4.028056112224449, -0.7748409510374107], [4.04809619238477, -0.7873529799277361], [4.06813627254509, -0.7995488146542284], [4.0881763527054105, -0.8114235574748823], [4.108216432865731, -0.82297243959543], [4.128256513026052, -0.8341908230844503], [4.148296593186372, -0.8450742027359202], [4.168336673346693, -0.8556182078784694], [4.188376753507014, -0.8658186041306007], [4.208416833667335, -0.8756712951011836], [4.228456913827655, -0.8851723240345281], [4.248496993987976, -0.8943178753993856], [4.268537074148297, -0.9031042764212313], [4.288577154308617, -0.9115279985572191], [4.3086172344689375, -0.919585658913216], [4.328657314629258, -0.9272740216023401], [4.348697394789579, -0.934589999044467], [4.368737474949899, -0.9415306532061747], [4.38877755511022, -0.9480931967806329], [4.408817635270541, -0.9542749943069602], [4.428857715430862, -0.9600735632286037], [4.448897795591182, -0.9654865748903116], [4.468937875751503, -0.9705118554733019], [4.488977955911824, -0.975147386868248], [4.509018036072144, -0.9793913074857344], [4.529058116232465, -0.9832419130038563], [4.5490981963927855, -0.9866976570526585], [4.569138276553106, -0.9897571518351457], [4.589178356713426, -0.9924191686846087], [4.609218436873747, -0.9946826385580477], [4.629258517034068, -0.9965466524654897], [4.649298597194389, -0.9980104618350312], [4.669338677354709, -0.9990734788134583], [4.68937875751503, -0.9997352765023239], [4.709418837675351, -0.9999955891293857], [4.729458917835671, -0.9998543121553386], [4.749498997995992, -0.9993115023157965], [4.7695390781563125, -0.9983673775985077], [4.789579158316633, -0.9970223171558134], [4.809619238476953, -0.9952768611523827], [4.829659318637274, -0.9931317105482877], [4.849699398797595, -0.9905877268175036], [4.869739478957916, -0.9876459316019486], [4.889779559118236, -0.9843075063012007], [4.909819639278557, -0.9805737915980582], [4.929859719438878, -0.9764462869201334], [4.949899799599198, -0.971926649837695], [4.969939879759519, -0.9670166953980014], [4.98997995991984, -0.9617183953963953], [5.01002004008016, -0.9560338775844459], [5.03006012024048, -0.9499654248154636], [5.050100200400801, -0.9435154741277243], [5.070140280561122, -0.936686615765777], [5.090180360721443, -0.9294815921402241], [5.110220440881763, -0.9219032967263922], [5.130260521042084, -0.913954772902337], [5.150300601202405, -0.9056392127266504], [5.170340681362725, -0.8969599556565567], [5.190380761523046, -0.8879204872068142], [5.210420841683367, -0.8785244375499641], [5.2304609218436875, -0.8687755800584842], [5.2505010020040075, -0.858677829789435], [5.270541082164328, -0.8482352419122049], [5.290581162324649, -0.8374520100799925], [5.31062124248497, -0.8263324647456687], [5.33066132264529, -0.8148810714227064], [5.350701402805611, -0.8031024288918657], [5.370741482965932, -0.791001267354367], [5.390781563126252, -0.7785824465322816], [5.410821643286573, -0.7658509537169064], [5.430861723446894, -0.7528119017659156], [5.4509018036072145, -0.739470527050078], [5.4709418837675345, -0.725832187350377], [5.490981963927855, -0.7119023597063697], [5.511022044088176, -0.6976866382166587], [5.531062124248497, -0.6831907317923477], [5.551102204408817, -0.6684204618643936], [5.571142284569138, -0.6533817600457673], [5.591182364729459, -0.6380806657493732], [5.611222444889779, -0.6225233237626706], [5.6312625250501, -0.6067159817799789], [5.651302605210421, -0.5906649878934608], [5.671342685370742, -0.5743767880437806], [5.691382765531062, -0.557857923431472], [5.7114228456913825, -0.541115027890045], [5.731462925851703, -0.5241548252218998], [5.751503006012024, -0.5069841264981036], [5.771543086172344, -0.4896098273231241], [5.791583166332665, -0.472038905065611], [5.811623246492986, -0.4542784160563504], [5.831663326653306, -0.43633549275449995], [5.851703406813627, -0.41821734088325324], [5.871743486973948, -0.39993123653608775], [5.891783567134269, -0.3814845232547455], [5.911823647294589, -0.36288460908013165], [5.9318637274549095, -0.34413896357730583], [5.95190380761523, -0.3252551148357744], [5.971943887775551, -0.306240646446271], [5.991983967935871, -0.28710319445525406], [6.012024048096192, -0.26785044429833255], [6.032064128256513, -0.24849012771386683], [6.052104208416833, -0.22903001963796651], [6.072144288577154, -0.20947793508214058], [6.092184368737475, -0.18984172599486143], [6.112224448897796, -0.17012927810828674], [6.132264529058116, -0.15034850777141895], [6.152304609218437, -0.13050735877096456], [6.1723446893787575, -0.11061379914118305], [6.192384769539078, -0.09067581796398959], [6.212424849699398, -0.07070142216061043], [6.232464929859719, -0.05069863327606886], [6.25250501002004, -0.030675484257807268], [6.27254509018036, -0.01064001622972209], [6.292585170340681, 0.009399724737084841], [6.312625250501002, 0.029435690855533707], [6.332665330661323, 0.0494598358544921], [6.352705410821643, 0.06946411821008634], [6.372745490981964, 0.08944050437511161], [6.3927855711422845, 0.10938097200522988], [6.4128256513026045, 0.12927751318067687], [6.432865731462925, 0.14912213762217616], [6.452905811623246, 0.16890687589976114], [6.472945891783567, 0.1886237826332328], [6.492985971943887, 0.2082649396829542], [6.513026052104208, 0.22782245932971043], [6.533066132264529, 0.2472884874423435], [6.55310621242485, 0.2666552066319069], [6.57314629258517, 0.28591483939106016], [6.593186372745491, 0.3050596512174518], [6.613226452905812, 0.32408195371982385], [6.633266533066132, 0.3429741077056058], [6.6533066132264524, 0.3617285262487512], [6.673346693386773, 0.38033767773657645], [6.693386773547094, 0.3987940888943949], [6.713426853707414, 0.41709034778671794], [6.733466933867735, 0.4352191067938274], [6.753507014028056, 0.4531730855625115], [6.773547094188377, 0.4709450739297952], [6.793587174348697, 0.4885279348184775], [6.813627254509018, 0.5059146071033237], [6.833667334669339, 0.5230981084467474], [6.853707414829659, 0.5400715381028593], [6.8737474949899795, 0.5568280796887498], [6.8937875751503, 0.5733610039218846], [6.913827655310621, 0.5896636713225298], [6.933867735470941, 0.6057295348801084], [6.953907815631262, 0.6215521426824256], [6.973947895791583, 0.6371251405066972], [6.993987975951904, 0.6524422743713535], [7.014028056112224, 0.6674973930475826], [7.034068136272545, 0.6822844505296138], [7.054108216432866, 0.6967975084627376], [7.074148296593186, 0.7110307385280988], [7.0941883767535066, 0.7249784247833022], [7.114228456913827, 0.738634965957881], [7.134268537074148, 0.7519948777027217], [7.154308617234468, 0.7650527947925297], [7.174348697394789, 0.7778034732804606], [7.19438877755511, 0.7902417926040398], [7.214428857715431, 0.8023627576415389], [7.234468937875751, 0.8141615007179721], [7.254509018036072, 0.8256332835599149], [7.274549098196393, 0.8367734991983506], [7.294589178356713, 0.8475776738187908], [7.314629258517034, 0.8580414685579221], [7.3346693386773545, 0.8681606812460534], [7.354709418837675, 0.877931248094673], [7.374749498997995, 0.8873492453284297], [7.394789579158316, 0.8964108907608895], [7.414829659318637, 0.9051125453134257], [7.434869739478958, 0.9134507144766437], [7.454909819639278, 0.921422049713745], [7.474949899799599, 0.929023349805272], [7.49498997995992, 0.936251562134688], [7.51503006012024, 0.9431037839142826], [7.535070140280561, 0.9495772633509076], [7.5551102204408815, 0.9556694007510711], [7.575150300601202, 0.961377749564953], [7.595190380761522, 0.9667000173689185], [7.615230460921843, 0.9716340667861361], [7.635270541082164, 0.976177916344928], [7.655310621242485, 0.9803297412745137], [7.675350701402805, 0.9840878742378212], [7.695390781563126, 0.9874508060010762], [7.715430861723447, 0.9904171860398961], [7.735470941883767, 0.99298582308165], [7.755511022044088, 0.9951556855838627], [7.775551102204409, 0.996925902148474], [7.7955911823647295, 0.9982957618717841], [7.8156312625250495, 0.9992647146299466], [7.83567134268537, 0.9998323712998934], [7.855711422845691, 0.9999985039156035], [7.875751503006012, 0.9997630457596517], [7.895791583166332, 0.999126091390002], [7.915831663326653, 0.9980878966020338], [7.935871743486974, 0.996648878325817], [7.955911823647294, 0.9948096144586761], [7.975951903807615, 0.992570843633112], [7.995991983967936, 0.989933464920173], [8.016032064128256, 0.9868985374683963], [8.036072144288577, 0.9834672800784626], [8.056112224448897, 0.9796410707137363], [8.076152304609218, 0.9754214459468878], [8.09619238476954, 0.9708101003428183], [8.11623246492986, 0.9658088857781382], [8.13627254509018, 0.9604198106974688], [8.1563126252505, 0.9546450393068674], [8.176352705410821, 0.9484868907047028], [8.196392785571142, 0.9419478379503241], [8.216432865731463, 0.9350305070709015], [8.236472945891784, 0.927737676006837], [8.256513026052104, 0.9200722734961667], [8.276553106212425, 0.9120373778984054], [8.296593186372744, 0.9036362159583048], [8.316633266533065, 0.8948721615100172], [8.336673346693386, 0.8857487341221979], [8.356713426853707, 0.876269597684573], [8.376753507014028, 0.8664385589365545], [8.396793587174349, 0.8562595659384861], [8.41683366733467, 0.8457367064861362], [8.436873747494989, 0.8348742064690758], [8.45691382765531, 0.8236764281735933], [8.47695390781563, 0.812147868530844], [8.496993987975952, 0.8002931573109174], [8.517034068136272, 0.7881170552635628], [8.537074148296593, 0.7756244522063128], [8.557114228456914, 0.7628203650607748], [8.577154308617233, 0.7497099358378803], [8.597194388777554, 0.736298429572892], [8.617234468937875, 0.7225912322110194], [8.637274549098196, 0.7085938484444636], [8.657314629258517, 0.6943118995017825], [8.677354709418838, 0.6797511208904538], [8.697394789579159, 0.6649173600935442], [8.71743486973948, 0.6498165742214111], [8.737474949899799, 0.6344548276193799], [8.75751503006012, 0.6188382894323492], [8.77755511022044, 0.6029732311273244], [8.797595190380761, 0.5868660239748446], [8.817635270541082, 0.5705231364903367], [8.837675350701403, 0.5539511318364162], [8.857715430861724, 0.5371566651871765], [8.877755511022043, 0.520146481055531], [8.897795591182364, 0.5029274105846679], [8.917835671342685, 0.48550636880473225], [8.937875751503006, 0.4678903518558021], [8.957915831663327, 0.4500864341783016], [8.977955911823647, 0.4321017656719664], [8.997995991983968, 0.41394356882450545], [9.018036072144287, 0.3956191358111141], [9.038076152304608, 0.37713582556599273], [9.05811623246493, 0.3585010608270722], [9.07815631262525, 0.3397223251550999], [9.098196392785571, 0.32080715992830766], [9.118236472945892, 0.30176316131385944], [9.138276553106213, 0.2825979772172964], [9.158316633266534, 0.26331930421120353], [9.178356713426853, 0.24393488444433464], [9.198396793587174, 0.22445250253242513], [9.218436873747494, 0.20487998243196784], [9.238476953907815, 0.18522518429817272], [9.258517034068136, 0.1654960013283981], [9.278557114228457, 0.1457003565923106], [9.298597194388778, 0.12584619985004888], [9.318637274549097, 0.10594150435967019], [9.338677354709418, 0.0859942636751517], [9.358717434869739, 0.06601248843625881], [9.37875751503006, 0.04600420315153421], [9.39879759519038, 0.025977442975726295], [9.418837675350701, 0.005940250482940325], [9.438877755511022, -0.014099327563189943], [9.458917835671341, -0.03413324344101134], [9.478957915831662, -0.05415345170275396], [9.498997995991983, -0.07415191240550292], [9.519038076152304, -0.0941205943399772], [9.539078156312625, -0.11405147825579219], [9.559118236472946, -0.13393656008192145], [9.579158316633267, -0.15376785414106262], [9.599198396793588, -0.17353739635661652], [9.619238476953907, -0.19323724745098983], [9.639278557114228, -0.21285949613394742], [9.659318637274549, -0.23239626227970794], [9.67935871743487, -0.25183970009154116], [9.69939879759519, -0.27118200125257047], [9.719438877755511, -0.2904153980615259], [9.739478957915832, -0.3095321665521854], [9.759519038076151, -0.32852462959525197], [9.779559118236472, -0.3473851599814287], [9.799599198396793, -0.3661061834844305], [9.819639278557114, -0.3846801819027346], [9.839679358717435, -0.40309969607882395], [9.859719438877756, -0.42135732889472005], [9.879759519038076, -0.43944574824260235], [9.899799599198396, -0.4573576899693173], [9.919839679358716, -0.4750859607936063], [9.939879759519037, -0.49262344119485596], [9.959919839679358, -0.509963088272242], [9.97995991983968, -0.5270979385730965], [10.0, -0.5440211108893698]]}, \"id\": \"el5494140094546807312\"});\n",
        "      });\n",
        "    });\n",
        "}else{\n",
        "    // require.js not available: dynamically load d3 & mpld3\n",
        "    mpld3_load_lib(\"https://mpld3.github.io/js/d3.v3.min.js\", function(){\n",
        "         mpld3_load_lib(\"https://mpld3.github.io/js/mpld3.v0.2.js\", function(){\n",
        "                 \n",
        "    mpld3.register_plugin(\"sliderview\", SliderViewPlugin);\n",
        "    SliderViewPlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
        "    SliderViewPlugin.prototype.constructor = SliderViewPlugin;\n",
        "    SliderViewPlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
        "    SliderViewPlugin.prototype.defaultProps = {}\n",
        "\n",
        "    function SliderViewPlugin(fig, props){\n",
        "        mpld3.Plugin.call(this, fig, props);\n",
        "    };\n",
        "\n",
        "    SliderViewPlugin.prototype.draw = function(){\n",
        "      var line = mpld3.get_element(this.props.idline);\n",
        "      var callback_func = this.props.callback_func;\n",
        "\n",
        "      var div = d3.select(\"#\" + this.fig.figid);\n",
        "\n",
        "      // Create slider\n",
        "      div.append(\"input\").attr(\"type\", \"range\").attr(\"min\", 0).attr(\"max\", 10).attr(\"step\", 0.1).attr(\"value\", 1)\n",
        "          .on(\"change\", function() {\n",
        "              var command = callback_func + \"(\" + this.value + \")\";\n",
        "              console.log(\"running \"+command);\n",
        "              var callbacks = { 'iopub' : {'output' : handle_output}};\n",
        "              var kernel = IPython.notebook.kernel;\n",
        "              kernel.execute(command, callbacks, {silent:false});\n",
        "          });\n",
        "\n",
        "      function handle_output(out){\n",
        "        //console.log(out);\n",
        "        var res = null;\n",
        "        // if output is a print statement\n",
        "        if (out.msg_type == \"stream\"){\n",
        "          res = out.content.data;\n",
        "        }\n",
        "        // if output is a python object\n",
        "        else if(out.msg_type === \"pyout\"){\n",
        "          res = out.content.data[\"text/plain\"];\n",
        "        }\n",
        "        // if output is a python error\n",
        "        else if(out.msg_type == \"pyerr\"){\n",
        "          res = out.content.ename + \": \" + out.content.evalue;\n",
        "          alert(res);\n",
        "        }\n",
        "        // if output is something we haven't thought of\n",
        "        else{\n",
        "          res = \"[out type not implemented]\";  \n",
        "        }\n",
        "\n",
        "        // Update line data\n",
        "        line.data = JSON.parse(res);\n",
        "        line.elements()\n",
        "          .attr(\"d\", line.datafunc(line.data))\n",
        "          .style(\"stroke\", \"black\");\n",
        "\n",
        "       }\n",
        "\n",
        "    };\n",
        "    \n",
        "                 mpld3.draw_figure(\"fig_el54941400945468073125152164669\", {\"axes\": [{\"xlim\": [0.0, 10.0], \"yscale\": \"linear\", \"axesbg\": \"#FFFFFF\", \"texts\": [{\"v_baseline\": \"hanging\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Time\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [0.5, -0.080645161290322578], \"rotation\": -0.0, \"id\": \"el5494140094546329232\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Amplitude\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [-0.071131552419354843, 0.5], \"rotation\": -90.0, \"id\": \"el5494140094546464144\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Slider demo\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 12.0, \"position\": [0.5, 1.0224014336917562], \"rotation\": -0.0, \"id\": \"el5494140094546140496\"}], \"zoomable\": true, \"images\": [], \"xdomain\": [0.0, 10.0], \"ylim\": [-1.2, 1.2], \"paths\": [], \"sharey\": [], \"sharex\": [], \"axesbgalpha\": null, \"axes\": [{\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"gridOn\": false}, \"fontsize\": 10.0, \"position\": \"bottom\", \"nticks\": 6, \"tickvalues\": null}, {\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"gridOn\": false}, \"fontsize\": 10.0, \"position\": \"left\", \"nticks\": 7, \"tickvalues\": null}], \"lines\": [{\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 0.5, \"xindex\": 0, \"linewidth\": 3, \"data\": \"data01\", \"id\": \"el5494140094546807248\"}], \"markers\": [], \"id\": \"el5494140094546325648\", \"ydomain\": [-1.2, 1.2], \"collections\": [], \"xscale\": \"linear\", \"bbox\": [0.125, 0.125, 0.77500000000000002, 0.77500000000000002]}], \"height\": 320.0, \"width\": 640.0, \"plugins\": [{\"type\": \"reset\"}, {\"enabled\": false, \"button\": true, \"type\": \"zoom\"}, {\"enabled\": false, \"button\": true, \"type\": \"boxzoom\"}, {\"idline\": \"el5494140094546807248\", \"type\": \"sliderview\", \"callback_func\": \"updateSlider\"}], \"data\": {\"data01\": [[0.0, 0.0], [0.02004008016032064, 0.020038738821815002], [0.04008016032064128, 0.040069430259003856], [0.06012024048096192, 0.06008403015870064], [0.08016032064128256, 0.08007450083026207], [0.1002004008016032, 0.1000328142731347], [0.12024048096192384, 0.1199509554008307], [0.1402805611222445, 0.13982092525971743], [0.16032064128256512, 0.15963474424132812], [0.18036072144288576, 0.17938445528690403], [0.2004008016032064, 0.1990621270828803], [0.22044088176352705, 0.2186598572460333], [0.24048096192384769, 0.2381697754970093], [0.2605210420841683, 0.25758404682096103], [0.280561122244489, 0.2768948746140219], [0.3006012024048096, 0.29609450381435476], [0.32064128256513025, 0.31517522401651815], [0.3406813627254509, 0.3341293725678981], [0.3607214428857715, 0.35294933764596376], [0.3807615230460922, 0.3716275613151095], [0.4008016032064128, 0.3901565425618566], [0.42084168336673344, 0.4085288403071956], [0.4408817635270541, 0.4267370763948594], [0.4609218436873747, 0.4447739385543271], [0.48096192384769537, 0.4626321833373691], [0.501002004008016, 0.48030463902695275], [0.5210420841683366, 0.49778420851734273], [0.5410821643286573, 0.5150638721642371], [0.561122244488978, 0.532136690603796], [0.5811623246492986, 0.5489958075394302], [0.6012024048096192, 0.5656344524952307], [0.6212424849699398, 0.5820459435349337], [0.6412825651302605, 0.598223689945328], [0.6613226452905812, 0.6141611948830293], [0.6813627254509018, 0.6298520579835557], [0.7014028056112224, 0.6452899779316592], [0.721442885771543, 0.66046875499188], [0.7414829659318637, 0.6753822934983056], [0.7615230460921844, 0.6900246043025389], [0.781563126252505, 0.7043898071788878], [0.8016032064128256, 0.718472133185813], [0.8216432865731462, 0.7322659269826862], [0.8416833667334669, 0.7457656491009247], [0.8617234468937875, 0.7589658781685948], [0.8817635270541082, 0.7718613130875883], [0.9018036072144289, 0.7844467751624975], [0.9218436873747494, 0.7967172101803344], [0.9418837675350701, 0.8086676904402592], [0.9619238476953907, 0.8202934167325028], [0.9819639278557114, 0.8315897202656872], [1.002004008016032, 0.8425520645417728], [1.0220440881763526, 0.8531760471778762], [1.0420841683366733, 0.8634574016742292], [1.062124248496994, 0.873391999127569], [1.0821643286573146, 0.882975849889269], [1.1022044088176353, 0.8922051051675485], [1.122244488977956, 0.9010760585731131], [1.1422845691382766, 0.9095851476076096], [1.1623246492985972, 0.9177289550942941], [1.1823647294589177, 0.9255042105503407], [1.2024048096192383, 0.9329077915002397], [1.222444889779559, 0.9399367247297561], [1.2424849699398797, 0.9465881874799471], [1.2625250501002003, 0.952859508580758], [1.282565130260521, 0.9587481695237406], [1.3026052104208417, 0.9642518054734649], [1.3226452905811623, 0.9693682062172161], [1.342685370741483, 0.9740953170525974], [1.3627254509018036, 0.9784312396126806], [1.3827655310621243, 0.9823742326283739], [1.4028056112224447, 0.9859227126277003], [1.4228456913827654, 0.9890752545717068], [1.442885771543086, 0.9918305924267473], [1.4629258517034067, 0.9941876196729109], [1.4829659318637274, 0.9961453897483908], [1.503006012024048, 0.9977031164296156], [1.5230460921843687, 0.9988601741469894], [1.5430861723446894, 0.9996160982361152], [1.56312625250501, 0.9999705851244007], [1.5831663326653307, 0.9999234924529701], [1.6032064128256511, 0.9994748391338337], [1.6232464929859718, 0.9986248053422938], [1.6432865731462925, 0.9973737324445874], [1.6633266533066131, 0.9957221228607965], [1.6833667334669338, 0.9936706398630807], [1.7034068136272544, 0.9912201073093126], [1.723446893787575, 0.988371509312224], [1.7434869739478958, 0.9851259898441939], [1.7635270541082164, 0.9814848522778399], [1.783567134268537, 0.9774495588625948], [1.8036072144288577, 0.9730217301374795], [1.8236472945891782, 0.9682031442803087], [1.8436873747494988, 0.9629957363935905], [1.8637274549098195, 0.9574015977274047], [1.8837675350701402, 0.9514229748395765], [1.9038076152304608, 0.9450622686934768], [1.9238476953907815, 0.9383220336938165], [1.9438877755511021, 0.9312049766608204], [1.9639278557114228, 0.9237139557431898], [1.9839679358717435, 0.9158519792702968], [2.004008016032064, 0.9076222045440633], [2.024048096192385, 0.8990279365710167], [2.0440881763527052, 0.8900726267350278], [2.064128256513026, 0.8807598714112645], [2.0841683366733466, 0.8710934105219191], [2.1042084168336674, 0.8610771260342868], [2.124248496993988, 0.8507150404018025], [2.1442885771543083, 0.8400113149486567], [2.164328657314629, 0.8289702481986446], [2.1843687374749496, 0.8175962741489164], [2.2044088176352705, 0.8058939604893209], [2.224448897795591, 0.7938680067680622], [2.244488977955912, 0.7815232425044001], [2.2645290581162323, 0.7688646252491586], [2.284569138276553, 0.7558972385938142], [2.3046092184368736, 0.7426262901289721], [2.3246492985971945, 0.7290571093530397], [2.344689378757515, 0.7151951455319486], [2.3647294589178354, 0.7010459655107749], [2.3847695390781563, 0.6866152514781423], [2.4048096192384767, 0.6719087986843055], [2.4248496993987976, 0.6569325131138257], [2.444889779559118, 0.6416924091137806], [2.464929859719439, 0.6261946069784511], [2.4849699398797593, 0.6104453304914682], [2.50501002004008, 0.594450904426391], [2.5250501002004007, 0.5782177520067356], [2.5450901803607215, 0.5617523923264612], [2.565130260521042, 0.5450614377319608], [2.5851703406813624, 0.5281515911665976], [2.6052104208416833, 0.5110296434788618], [2.6252505010020037, 0.4937024706952255], [2.6452905811623246, 0.47617703125878724], [2.665330661322645, 0.45846036323482436], [2.685370741482966, 0.4405595814843635], [2.7054108216432864, 0.42248187480691707], [2.7254509018036073, 0.4042345030535201], [2.7454909819639277, 0.3858247942112399], [2.7655310621242486, 0.3672601414603165], [2.785571142284569, 0.3485480002051285], [2.8056112224448895, 0.32969588508016423], [2.8256513026052104, 0.3107113669322103], [2.845691382765531, 0.2916020697799665], [2.8657314629258517, 0.27237566775230226], [2.885771543086172, 0.25303988200639665], [2.905811623246493, 0.23360247762698433], [2.9258517034068134, 0.2140712605079683], [2.9458917835671343, 0.19445407421763666], [2.9659318637274548, 0.17475879684875675], [2.9859719438877756, 0.15499333785479757], [3.006012024048096, 0.135165634873565], [3.0260521042084165, 0.1152836505395119], [3.0460921843687374, 0.09535536928601408], [3.066132264529058, 0.07538879413889213], [3.0861723446893787, 0.055391943502462154], [3.106212424849699, 0.03537284793941732], [3.12625250501002, 0.01533954694581965], [3.1462925851703405, -0.0046999142774887155], [3.1663326653306614, -0.02473748805577231], [3.186372745490982, -0.04476512747227552], [3.2064128256513023, -0.06477478959979804], [3.226452905811623, -0.08475843873066376], [3.2464929859719436, -0.10470804960379021], [3.2665330661322645, -0.12461561062756739], [3.286573146292585, -0.1444731270972402], [3.306613226452906, -0.1642726244055165], [3.3266533066132262, -0.184006151245097], [3.346693386773547, -0.2036657828018553], [3.3667334669338675, -0.2232436239373713], [3.3867735470941884, -0.24273181235955404], [3.406813627254509, -0.2621225217800672], [3.4268537074148293, -0.28140796505730165], [3.44689378757515, -0.3005803973236234], [3.4669338677354706, -0.31963211909564393], [3.4869739478957915, -0.33855547936626973], [3.507014028056112, -0.35734287867727693], [3.527054108216433, -0.37598677217119186], [3.5470941883767533, -0.39447967262123707], [3.567134268537074, -0.4128141534381407], [3.5871743486973946, -0.43098285165258693], [3.6072144288577155, -0.44897847087212456], [3.627254509018036, -0.46679378421133183], [3.6472945891783564, -0.48442163719407416], [3.6673346693386772, -0.5018549506266788], [3.6873747494989977, -0.5190867234408767], [3.7074148296593186, -0.5361100355053741], [3.727454909819639, -0.552918050404914], [3.74749498997996, -0.5695040181857252], [3.7675350701402803, -0.5858612780662419], [3.787575150300601, -0.6019832611120195], [3.8076152304609217, -0.6178634928737587], [3.8276553106212425, -0.6334955959873921], [3.847695390781563, -0.6488732927351748], [3.8677354709418834, -0.6639904075667645], [3.8877755511022043, -0.6788408695792686], [3.9078156312625247, -0.6934187149552649], [3.9278557114228456, -0.7077180893578217], [3.947895791583166, -0.7217332502815464], [3.967935871743487, -0.7354585693587291], [3.9879759519038074, -0.748888534619643], [4.008016032064128, -0.762017752706107], [4.028056112224449, -0.7748409510374107], [4.04809619238477, -0.7873529799277361], [4.06813627254509, -0.7995488146542284], [4.0881763527054105, -0.8114235574748823], [4.108216432865731, -0.82297243959543], [4.128256513026052, -0.8341908230844503], [4.148296593186372, -0.8450742027359202], [4.168336673346693, -0.8556182078784694], [4.188376753507014, -0.8658186041306007], [4.208416833667335, -0.8756712951011836], [4.228456913827655, -0.8851723240345281], [4.248496993987976, -0.8943178753993856], [4.268537074148297, -0.9031042764212313], [4.288577154308617, -0.9115279985572191], [4.3086172344689375, -0.919585658913216], [4.328657314629258, -0.9272740216023401], [4.348697394789579, -0.934589999044467], [4.368737474949899, -0.9415306532061747], [4.38877755511022, -0.9480931967806329], [4.408817635270541, -0.9542749943069602], [4.428857715430862, -0.9600735632286037], [4.448897795591182, -0.9654865748903116], [4.468937875751503, -0.9705118554733019], [4.488977955911824, -0.975147386868248], [4.509018036072144, -0.9793913074857344], [4.529058116232465, -0.9832419130038563], [4.5490981963927855, -0.9866976570526585], [4.569138276553106, -0.9897571518351457], [4.589178356713426, -0.9924191686846087], [4.609218436873747, -0.9946826385580477], [4.629258517034068, -0.9965466524654897], [4.649298597194389, -0.9980104618350312], [4.669338677354709, -0.9990734788134583], [4.68937875751503, -0.9997352765023239], [4.709418837675351, -0.9999955891293857], [4.729458917835671, -0.9998543121553386], [4.749498997995992, -0.9993115023157965], [4.7695390781563125, -0.9983673775985077], [4.789579158316633, -0.9970223171558134], [4.809619238476953, -0.9952768611523827], [4.829659318637274, -0.9931317105482877], [4.849699398797595, -0.9905877268175036], [4.869739478957916, -0.9876459316019486], [4.889779559118236, -0.9843075063012007], [4.909819639278557, -0.9805737915980582], [4.929859719438878, -0.9764462869201334], [4.949899799599198, -0.971926649837695], [4.969939879759519, -0.9670166953980014], [4.98997995991984, -0.9617183953963953], [5.01002004008016, -0.9560338775844459], [5.03006012024048, -0.9499654248154636], [5.050100200400801, -0.9435154741277243], [5.070140280561122, -0.936686615765777], [5.090180360721443, -0.9294815921402241], [5.110220440881763, -0.9219032967263922], [5.130260521042084, -0.913954772902337], [5.150300601202405, -0.9056392127266504], [5.170340681362725, -0.8969599556565567], [5.190380761523046, -0.8879204872068142], [5.210420841683367, -0.8785244375499641], [5.2304609218436875, -0.8687755800584842], [5.2505010020040075, -0.858677829789435], [5.270541082164328, -0.8482352419122049], [5.290581162324649, -0.8374520100799925], [5.31062124248497, -0.8263324647456687], [5.33066132264529, -0.8148810714227064], [5.350701402805611, -0.8031024288918657], [5.370741482965932, -0.791001267354367], [5.390781563126252, -0.7785824465322816], [5.410821643286573, -0.7658509537169064], [5.430861723446894, -0.7528119017659156], [5.4509018036072145, -0.739470527050078], [5.4709418837675345, -0.725832187350377], [5.490981963927855, -0.7119023597063697], [5.511022044088176, -0.6976866382166587], [5.531062124248497, -0.6831907317923477], [5.551102204408817, -0.6684204618643936], [5.571142284569138, -0.6533817600457673], [5.591182364729459, -0.6380806657493732], [5.611222444889779, -0.6225233237626706], [5.6312625250501, -0.6067159817799789], [5.651302605210421, -0.5906649878934608], [5.671342685370742, -0.5743767880437806], [5.691382765531062, -0.557857923431472], [5.7114228456913825, -0.541115027890045], [5.731462925851703, -0.5241548252218998], [5.751503006012024, -0.5069841264981036], [5.771543086172344, -0.4896098273231241], [5.791583166332665, -0.472038905065611], [5.811623246492986, -0.4542784160563504], [5.831663326653306, -0.43633549275449995], [5.851703406813627, -0.41821734088325324], [5.871743486973948, -0.39993123653608775], [5.891783567134269, -0.3814845232547455], [5.911823647294589, -0.36288460908013165], [5.9318637274549095, -0.34413896357730583], [5.95190380761523, -0.3252551148357744], [5.971943887775551, -0.306240646446271], [5.991983967935871, -0.28710319445525406], [6.012024048096192, -0.26785044429833255], [6.032064128256513, -0.24849012771386683], [6.052104208416833, -0.22903001963796651], [6.072144288577154, -0.20947793508214058], [6.092184368737475, -0.18984172599486143], [6.112224448897796, -0.17012927810828674], [6.132264529058116, -0.15034850777141895], [6.152304609218437, -0.13050735877096456], [6.1723446893787575, -0.11061379914118305], [6.192384769539078, -0.09067581796398959], [6.212424849699398, -0.07070142216061043], [6.232464929859719, -0.05069863327606886], [6.25250501002004, -0.030675484257807268], [6.27254509018036, -0.01064001622972209], [6.292585170340681, 0.009399724737084841], [6.312625250501002, 0.029435690855533707], [6.332665330661323, 0.0494598358544921], [6.352705410821643, 0.06946411821008634], [6.372745490981964, 0.08944050437511161], [6.3927855711422845, 0.10938097200522988], [6.4128256513026045, 0.12927751318067687], [6.432865731462925, 0.14912213762217616], [6.452905811623246, 0.16890687589976114], [6.472945891783567, 0.1886237826332328], [6.492985971943887, 0.2082649396829542], [6.513026052104208, 0.22782245932971043], [6.533066132264529, 0.2472884874423435], [6.55310621242485, 0.2666552066319069], [6.57314629258517, 0.28591483939106016], [6.593186372745491, 0.3050596512174518], [6.613226452905812, 0.32408195371982385], [6.633266533066132, 0.3429741077056058], [6.6533066132264524, 0.3617285262487512], [6.673346693386773, 0.38033767773657645], [6.693386773547094, 0.3987940888943949], [6.713426853707414, 0.41709034778671794], [6.733466933867735, 0.4352191067938274], [6.753507014028056, 0.4531730855625115], [6.773547094188377, 0.4709450739297952], [6.793587174348697, 0.4885279348184775], [6.813627254509018, 0.5059146071033237], [6.833667334669339, 0.5230981084467474], [6.853707414829659, 0.5400715381028593], [6.8737474949899795, 0.5568280796887498], [6.8937875751503, 0.5733610039218846], [6.913827655310621, 0.5896636713225298], [6.933867735470941, 0.6057295348801084], [6.953907815631262, 0.6215521426824256], [6.973947895791583, 0.6371251405066972], [6.993987975951904, 0.6524422743713535], [7.014028056112224, 0.6674973930475826], [7.034068136272545, 0.6822844505296138], [7.054108216432866, 0.6967975084627376], [7.074148296593186, 0.7110307385280988], [7.0941883767535066, 0.7249784247833022], [7.114228456913827, 0.738634965957881], [7.134268537074148, 0.7519948777027217], [7.154308617234468, 0.7650527947925297], [7.174348697394789, 0.7778034732804606], [7.19438877755511, 0.7902417926040398], [7.214428857715431, 0.8023627576415389], [7.234468937875751, 0.8141615007179721], [7.254509018036072, 0.8256332835599149], [7.274549098196393, 0.8367734991983506], [7.294589178356713, 0.8475776738187908], [7.314629258517034, 0.8580414685579221], [7.3346693386773545, 0.8681606812460534], [7.354709418837675, 0.877931248094673], [7.374749498997995, 0.8873492453284297], [7.394789579158316, 0.8964108907608895], [7.414829659318637, 0.9051125453134257], [7.434869739478958, 0.9134507144766437], [7.454909819639278, 0.921422049713745], [7.474949899799599, 0.929023349805272], [7.49498997995992, 0.936251562134688], [7.51503006012024, 0.9431037839142826], [7.535070140280561, 0.9495772633509076], [7.5551102204408815, 0.9556694007510711], [7.575150300601202, 0.961377749564953], [7.595190380761522, 0.9667000173689185], [7.615230460921843, 0.9716340667861361], [7.635270541082164, 0.976177916344928], [7.655310621242485, 0.9803297412745137], [7.675350701402805, 0.9840878742378212], [7.695390781563126, 0.9874508060010762], [7.715430861723447, 0.9904171860398961], [7.735470941883767, 0.99298582308165], [7.755511022044088, 0.9951556855838627], [7.775551102204409, 0.996925902148474], [7.7955911823647295, 0.9982957618717841], [7.8156312625250495, 0.9992647146299466], [7.83567134268537, 0.9998323712998934], [7.855711422845691, 0.9999985039156035], [7.875751503006012, 0.9997630457596517], [7.895791583166332, 0.999126091390002], [7.915831663326653, 0.9980878966020338], [7.935871743486974, 0.996648878325817], [7.955911823647294, 0.9948096144586761], [7.975951903807615, 0.992570843633112], [7.995991983967936, 0.989933464920173], [8.016032064128256, 0.9868985374683963], [8.036072144288577, 0.9834672800784626], [8.056112224448897, 0.9796410707137363], [8.076152304609218, 0.9754214459468878], [8.09619238476954, 0.9708101003428183], [8.11623246492986, 0.9658088857781382], [8.13627254509018, 0.9604198106974688], [8.1563126252505, 0.9546450393068674], [8.176352705410821, 0.9484868907047028], [8.196392785571142, 0.9419478379503241], [8.216432865731463, 0.9350305070709015], [8.236472945891784, 0.927737676006837], [8.256513026052104, 0.9200722734961667], [8.276553106212425, 0.9120373778984054], [8.296593186372744, 0.9036362159583048], [8.316633266533065, 0.8948721615100172], [8.336673346693386, 0.8857487341221979], [8.356713426853707, 0.876269597684573], [8.376753507014028, 0.8664385589365545], [8.396793587174349, 0.8562595659384861], [8.41683366733467, 0.8457367064861362], [8.436873747494989, 0.8348742064690758], [8.45691382765531, 0.8236764281735933], [8.47695390781563, 0.812147868530844], [8.496993987975952, 0.8002931573109174], [8.517034068136272, 0.7881170552635628], [8.537074148296593, 0.7756244522063128], [8.557114228456914, 0.7628203650607748], [8.577154308617233, 0.7497099358378803], [8.597194388777554, 0.736298429572892], [8.617234468937875, 0.7225912322110194], [8.637274549098196, 0.7085938484444636], [8.657314629258517, 0.6943118995017825], [8.677354709418838, 0.6797511208904538], [8.697394789579159, 0.6649173600935442], [8.71743486973948, 0.6498165742214111], [8.737474949899799, 0.6344548276193799], [8.75751503006012, 0.6188382894323492], [8.77755511022044, 0.6029732311273244], [8.797595190380761, 0.5868660239748446], [8.817635270541082, 0.5705231364903367], [8.837675350701403, 0.5539511318364162], [8.857715430861724, 0.5371566651871765], [8.877755511022043, 0.520146481055531], [8.897795591182364, 0.5029274105846679], [8.917835671342685, 0.48550636880473225], [8.937875751503006, 0.4678903518558021], [8.957915831663327, 0.4500864341783016], [8.977955911823647, 0.4321017656719664], [8.997995991983968, 0.41394356882450545], [9.018036072144287, 0.3956191358111141], [9.038076152304608, 0.37713582556599273], [9.05811623246493, 0.3585010608270722], [9.07815631262525, 0.3397223251550999], [9.098196392785571, 0.32080715992830766], [9.118236472945892, 0.30176316131385944], [9.138276553106213, 0.2825979772172964], [9.158316633266534, 0.26331930421120353], [9.178356713426853, 0.24393488444433464], [9.198396793587174, 0.22445250253242513], [9.218436873747494, 0.20487998243196784], [9.238476953907815, 0.18522518429817272], [9.258517034068136, 0.1654960013283981], [9.278557114228457, 0.1457003565923106], [9.298597194388778, 0.12584619985004888], [9.318637274549097, 0.10594150435967019], [9.338677354709418, 0.0859942636751517], [9.358717434869739, 0.06601248843625881], [9.37875751503006, 0.04600420315153421], [9.39879759519038, 0.025977442975726295], [9.418837675350701, 0.005940250482940325], [9.438877755511022, -0.014099327563189943], [9.458917835671341, -0.03413324344101134], [9.478957915831662, -0.05415345170275396], [9.498997995991983, -0.07415191240550292], [9.519038076152304, -0.0941205943399772], [9.539078156312625, -0.11405147825579219], [9.559118236472946, -0.13393656008192145], [9.579158316633267, -0.15376785414106262], [9.599198396793588, -0.17353739635661652], [9.619238476953907, -0.19323724745098983], [9.639278557114228, -0.21285949613394742], [9.659318637274549, -0.23239626227970794], [9.67935871743487, -0.25183970009154116], [9.69939879759519, -0.27118200125257047], [9.719438877755511, -0.2904153980615259], [9.739478957915832, -0.3095321665521854], [9.759519038076151, -0.32852462959525197], [9.779559118236472, -0.3473851599814287], [9.799599198396793, -0.3661061834844305], [9.819639278557114, -0.3846801819027346], [9.839679358717435, -0.40309969607882395], [9.859719438877756, -0.42135732889472005], [9.879759519038076, -0.43944574824260235], [9.899799599198396, -0.4573576899693173], [9.919839679358716, -0.4750859607936063], [9.939879759519037, -0.49262344119485596], [9.959919839679358, -0.509963088272242], [9.97995991983968, -0.5270979385730965], [10.0, -0.5440211108893698]]}, \"id\": \"el5494140094546807312\"});\n",
        "            })\n",
        "         });\n",
        "}\n",
        "</script>"
       ],
       "metadata": {},
       "output_type": "display_data",
       "png": "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\ngAAbAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f6a4db28a10>"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "**Note**: this notebook makes interactive calculation when slider position is changed, so you need to download this notebook to see any changes in plot."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Complex example: beam deflection"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "When creating more interaction between Javascript and Python, things get easily quite complicated. Therefore one should consider using e.g. Backbone or similar to get more structured code in Javascript side. IPython notebook seems to be using Backbone internally already.\n",
      "\n",
      "In the next example we add more inputs and use Backbone to handle syncronizing Python and Javascript. In this example we calculate the deflection line $v(x)$ for simple supported Euler Bernoulli beam and update visualization when user changes force location $x \\in [0, 1]$. The formula for deflection $v(x)$ is \n",
      "\n",
      "\\begin{equation}\n",
      "v(x) = \\frac{FL^2}{6EI}\\left[ \\frac{ab}{L^2}(L+b)\\frac{x}{L} - b\\left(\\frac{x}{L}\\right)^3 + \\frac{1}{L^2}<x-a>^3 \\right],\n",
      "\\end{equation}\n",
      "where\n",
      "\\begin{equation}\n",
      "<x-a>=\\begin{cases}\n",
      "0 & ,x<a\\\\\n",
      "x-a & ,x\\geq a\n",
      "\\end{cases}\n",
      "\\end{equation}\n",
      "and $a$ is distance from left support, $a+b=L$.\n",
      "\n",
      "More information about deflection: http://en.wikipedia.org/wiki/Deflection_%28engineering%29\n",
      "\n",
      "First we define the template we use in our plugin:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from IPython import display\n",
      "display.HTML(\"\"\"\n",
      "<script type=\"text/template\" id=\"tools-template\">\n",
      "    <h3>Tools</h3>\n",
      "    <p><strong>Force location</strong></p>\n",
      "    <input id=\"slider1\" type=\"range\" min=\"0\" max=\"1\" step=\"0.01\" value=\"0.50\" style=\"display: inline-block;\">\n",
      "    <label id=\"slider1label\" for=\"slider1\" style=\"display: inline-block; width: 40px;\">0.50</label>\n",
      "    <p><strong>Boundary conditions</strong></p>\n",
      "    <select id=\"boundary_conditions\">\n",
      "          <option value=\"simple-simple\">Simple support-Simple support</option>\n",
      "          <option value=\"clamp-simple\">Clamp-Simple support</option>\n",
      "          <option value=\"clamp-clamp\">Clamp-Clamp</option>\n",
      "    </select>\n",
      "    <p><strong>Young's modulus (GPa)</strong></p>\n",
      "    <input id=\"young\" type=\"number\" value=\"210\"/>\n",
      "    <p><strong>Other options</strong></p>\n",
      "    <div>\n",
      "        <label><span style=\"vertical-align: middle\">Use FEM to calculate deflection line?</span>\n",
      "        <input id=\"useFEM\" type=\"checkbox\" style=\"vertical-align: middle\" /></label>\n",
      "    </div>\n",
      "</script>\n",
      "\"\"\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "\n",
        "<script type=\"text/template\" id=\"tools-template\">\n",
        "    <h3>Tools</h3>\n",
        "    <p><strong>Force location</strong></p>\n",
        "    <input id=\"slider1\" type=\"range\" min=\"0\" max=\"1\" step=\"0.01\" value=\"0.50\" style=\"display: inline-block;\">\n",
        "    <label id=\"slider1label\" for=\"slider1\" style=\"display: inline-block; width: 40px;\">0.50</label>\n",
        "    <p><strong>Boundary conditions</strong></p>\n",
        "    <select id=\"boundary_conditions\">\n",
        "          <option value=\"simple-simple\">Simple support-Simple support</option>\n",
        "          <option value=\"clamp-simple\">Clamp-Simple support</option>\n",
        "          <option value=\"clamp-clamp\">Clamp-Clamp</option>\n",
        "    </select>\n",
        "    <p><strong>Young's modulus (GPa)</strong></p>\n",
        "    <input id=\"young\" type=\"number\" value=\"210\"/>\n",
        "    <p><strong>Other options</strong></p>\n",
        "    <div>\n",
        "        <label><span style=\"vertical-align: middle\">Use FEM to calculate deflection line?</span>\n",
        "        <input id=\"useFEM\" type=\"checkbox\" style=\"vertical-align: middle\" /></label>\n",
        "    </div>\n",
        "</script>\n"
       ],
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "<IPython.core.display.HTML at 0x7f6a4db132d0>"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Our plugin code comes next. Note that we have now Backbone model LineModel to handle Python-Javascript-interaction and Backbone views ToolsView and CanvasView to take care of visualization when data is changed.\n",
      "\n",
      "Note that not all input elements are \"connected\" to the visualization, they are more like placeholders ready for your own coding experiments. They are not implemented on purpose to keep lines of code as low as possible. To get them work, modify ``this.notImplemented`` $\\rightarrow$ ``this.modelChanged`` in ``initialize`` function and change ``var command = ... `` in ``modelChanged`` to pass more parameters to notebook server. Don't forget to change Python side function accordingly."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "class MyUserInterface(mpld3.plugins.PluginBase):\n",
      "    \"\"\" Here we use Backbone to create more structured Javascript. \"\"\"\n",
      "\n",
      "    JAVASCRIPT = \"\"\"\n",
      "\n",
      "var LineModel = Backbone.Model.extend({\n",
      "\n",
      "    initialize: function(options) {\n",
      "        this.options = options || {};\n",
      "        this.on(\"change:sliderPosition\", this.modelChanged);\n",
      "        this.on(\"change:boundaryCondition\", this.notImplemented);\n",
      "        this.on(\"change:youngsModulus\", this.notImplemented);\n",
      "        this.on(\"change:useFEM\", this.notImplemented);\n",
      "    },\n",
      "\n",
      "    /**\n",
      "        This example should be quite easy to extend to use more inputs. You\n",
      "        just have to pass more model.get('...') things to kernel execute command below.\n",
      "    */\n",
      "    notImplemented: function(model) {\n",
      "        alert(\"This function is not implemented in the example on purpose.\");\n",
      "    },\n",
      "\n",
      "    /**\n",
      "        Model changed, execute notebook kernel and update model data.\n",
      "    */\n",
      "    modelChanged: function(model) {\n",
      "        var command = this.options.callback_func + \"(\" + model.get('sliderPosition') + \")\";\n",
      "        console.log(\"IPython kernel execute \"+command);\n",
      "        var callbacks = {\n",
      "            'iopub' : {\n",
      "                'output' : function(out) {\n",
      "                    //console.log(out);\n",
      "                    var res = null;\n",
      "                    // if output is a print statement\n",
      "                    if (out.msg_type == \"stream\"){\n",
      "                      res = out.content.data;\n",
      "                    }\n",
      "                    // if output is a python object\n",
      "                    else if(out.msg_type === \"pyout\"){\n",
      "                      res = out.content.data[\"text/plain\"];\n",
      "                    }\n",
      "                    // if output is a python error\n",
      "                    else if(out.msg_type == \"pyerr\"){\n",
      "                      res = out.content.ename + \": \" + out.content.evalue;\n",
      "                      alert(res);\n",
      "                    }\n",
      "                    // if output is something we haven't thought of\n",
      "                    else{\n",
      "                      res = \"[out type not implemented]\";\n",
      "                      alert(res);\n",
      "                    }\n",
      "                    model.set(\"line\", JSON.parse(res));\n",
      "                }\n",
      "            }\n",
      "        };\n",
      "        IPython.notebook.kernel.execute(command, callbacks, {silent:false});\n",
      "    }\n",
      "\n",
      "});\n",
      "\n",
      "\n",
      "var ToolsView = Backbone.View.extend({\n",
      "\n",
      "    /**\n",
      "        This view renders toolbar with slider and other html elements.\n",
      "    */\n",
      "    initialize: function(options) {\n",
      "        this.options = options || {};\n",
      "        _.bindAll(this, 'render');\n",
      "    },\n",
      "\n",
      "    render: function() {\n",
      "        var template = _.template($(\"#tools-template\").html(), {});\n",
      "        $(this.el).append(template);\n",
      "        return this;\n",
      "    },\n",
      "\n",
      "    /**\n",
      "        Listen event changes.\n",
      "    */\n",
      "    events: {\n",
      "        \"change #slider1\": \"changeSlider1\",\n",
      "        \"change #boundary_conditions\": \"changeBoundaryConditions\",\n",
      "        \"change #young\": \"changeModulus\",\n",
      "        \"change #useFEM\": \"changeUseFEM\"\n",
      "    },\n",
      "\n",
      "    changeSlider1: function(ev) {\n",
      "        var sliderPosition = $(ev.currentTarget).val();\n",
      "        this.model.set('sliderPosition', sliderPosition);\n",
      "        $(this.el).find(\"#slider1label\").text(parseFloat(sliderPosition).toFixed(2));\n",
      "    },\n",
      "\n",
      "    changeBoundaryConditions: function(ev) {\n",
      "        this.model.set('boundaryCondition', $(ev.currentTarget).val());\n",
      "    },\n",
      "\n",
      "    changeModulus: function(ev) {\n",
      "        this.model.set('youngsModulus', $(ev.currentTarget).val());\n",
      "    },\n",
      "\n",
      "    changeUseFEM: function(ev) {\n",
      "        var isChecked = $(ev.currentTarget).is(\":checked\");\n",
      "        this.model.set('useFEM', isChecked);\n",
      "    }\n",
      "\n",
      "});\n",
      "\n",
      "var CanvasView = Backbone.View.extend({\n",
      "\n",
      "    initialize: function(options) {\n",
      "        this.options = options || {};\n",
      "        this.line = mpld3.get_element(this.options.props.idline);\n",
      "        _.bindAll(this, 'render');\n",
      "        this.model.bind('change:line', this.render);\n",
      "    },\n",
      "\n",
      "    /**\n",
      "        Update line when model changes, f.e. new data is calculated\n",
      "        inside notebook and updated to Backbone model.\n",
      "    */\n",
      "    render: function() {\n",
      "        this.line.elements().transition()\n",
      "            .attr(\"d\", this.line.datafunc(this.model.get('line')))\n",
      "            .style(\"stroke\", \"black\");\n",
      "    }\n",
      "\n",
      "});\n",
      "\n",
      "// PLUGIN START\n",
      "\n",
      "mpld3.register_plugin(\"myuserinterface\", MyUserInterfacePlugin);\n",
      "MyUserInterfacePlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
      "MyUserInterfacePlugin.prototype.constructor = MyUserInterfacePlugin;\n",
      "MyUserInterfacePlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
      "MyUserInterfacePlugin.prototype.defaultProps = {}\n",
      "\n",
      "function MyUserInterfacePlugin(fig, props){\n",
      "    mpld3.Plugin.call(this, fig, props);\n",
      "};\n",
      "\n",
      "MyUserInterfacePlugin.prototype.draw = function() {\n",
      "\n",
      "    // Some hacking to get proper layout.\n",
      "    var div = $(\"#\" + this.fig.figid).attr(\"style\", \"border: 1px solid;\");\n",
      "    var figdiv = div.find(\"div\");\n",
      "    figdiv.attr(\"style\", \"display: inline;\");\n",
      "\n",
      "    // Create LineModel\n",
      "    var lineModel = new LineModel({\n",
      "      callback_func: this.props.callback_func\n",
      "    });\n",
      "\n",
      "    // Create tools view\n",
      "    var myel = $('<div style=\"float: left; margin: 10px 30px;\" id=\"tools\"></div>');\n",
      "    div.append(myel);\n",
      "    var toolsView = new ToolsView({\n",
      "        el: myel,\n",
      "        model: lineModel\n",
      "    });\n",
      "    toolsView.render();\n",
      "\n",
      "    // Create canvas view which updates line visualization when the model is changed\n",
      "    var canvasView = new CanvasView({\n",
      "        el: figdiv,\n",
      "        model: lineModel,\n",
      "        props: this.props\n",
      "    });\n",
      "\n",
      "};\n",
      "\"\"\"\n",
      "\n",
      "    def __init__(self, line, callback_func):\n",
      "        self.dict_ = {\"type\": \"myuserinterface\",\n",
      "                      \"idline\": mpld3.utils.get_id(line),\n",
      "                      \"callback_func\": callback_func}"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Next we do the actual calculation of the deflection using Python and display results:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import numpy as np\n",
      "\n",
      "L = 1.0\n",
      "F = 3.0\n",
      "E = 100.0\n",
      "I = 0.1\n",
      "\n",
      "def v_(x, a):\n",
      "    b = L - a\n",
      "    v = a*b/L**2*(L+b)*x/L - b*(x/L)**3\n",
      "    if x-a > 0.0:\n",
      "        v += 1.0/L**2*(x-a)**3\n",
      "    v *= F*L**2/(6.0*E*I)\n",
      "    return v\n",
      "\n",
      "v = np.vectorize(v_)\n",
      "\n",
      "def runCalculation(a):\n",
      "    \"\"\" \n",
      "    \"\"\"\n",
      "    x = np.linspace(0, L, 500)\n",
      "    y = -v(x, a)*1000.0\n",
      "    return map(list, list(zip(list(x), list(y))))\n",
      "\n",
      "fig, ax = plt.subplots(figsize=(8, 4))\n",
      "\n",
      "t = np.linspace(0, 1, 200)\n",
      "y = np.sin(t)\n",
      "ax.set_xlabel('x [m]')\n",
      "ax.set_ylabel('Deflection [mm]')\n",
      "ax.set_title('Euler-Bernoulli beam deflection line')\n",
      "\n",
      "# create the line object\n",
      "initial_data = np.array(runCalculation(0.5))\n",
      "line, = ax.plot(initial_data[:, 0], initial_data[:, 1], '-k', lw=3, alpha=0.5)\n",
      "ax.plot([0.975, 1.025, 1.00, 0.975], [-1, -1, 0, -1], '-k', lw=1)\n",
      "ax.plot([-0.025, 0.025, 0.000, -0.025], [-1, -1, 0, -1], '-k', lw=1)\n",
      "ax.set_ylim(-10, 5)\n",
      "ax.grid(lw=0.1, alpha=0.2)\n",
      "\n",
      "mpld3.plugins.connect(fig, MyUserInterface(line, callback_func=\"runCalculation\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "html": [
        "\n",
        "\n",
        "<style>\n",
        "\n",
        "</style>\n",
        "\n",
        "<div id=\"fig_el54941400945445260328126322641\"></div>\n",
        "<script>\n",
        "function mpld3_load_lib(url, callback){\n",
        "  var s = document.createElement('script');\n",
        "  s.src = url;\n",
        "  s.async = true;\n",
        "  s.onreadystatechange = s.onload = callback;\n",
        "  s.onerror = function(){console.warn(\"failed to load library \" + url);};\n",
        "  document.getElementsByTagName(\"head\")[0].appendChild(s);\n",
        "}\n",
        "\n",
        "if(typeof(mpld3) !== \"undefined\" && mpld3._mpld3IsLoaded){\n",
        "   // already loaded: just create the figure\n",
        "   !function(mpld3){\n",
        "       \n",
        "\n",
        "var LineModel = Backbone.Model.extend({\n",
        "\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        this.on(\"change:sliderPosition\", this.modelChanged);\n",
        "        this.on(\"change:boundaryCondition\", this.notImplemented);\n",
        "        this.on(\"change:youngsModulus\", this.notImplemented);\n",
        "        this.on(\"change:useFEM\", this.notImplemented);\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        This example should be quite easy to extend to use more inputs. You\n",
        "        just have to pass more model.get('...') things to kernel execute command below.\n",
        "    */\n",
        "    notImplemented: function(model) {\n",
        "        alert(\"This function is not implemented in the example on purpose.\");\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Model changed, execute notebook kernel and update model data.\n",
        "    */\n",
        "    modelChanged: function(model) {\n",
        "        var command = this.options.callback_func + \"(\" + model.get('sliderPosition') + \")\";\n",
        "        console.log(\"IPython kernel execute \"+command);\n",
        "        var callbacks = {\n",
        "            'iopub' : {\n",
        "                'output' : function(out) {\n",
        "                    //console.log(out);\n",
        "                    var res = null;\n",
        "                    // if output is a print statement\n",
        "                    if (out.msg_type == \"stream\"){\n",
        "                      res = out.content.data;\n",
        "                    }\n",
        "                    // if output is a python object\n",
        "                    else if(out.msg_type === \"pyout\"){\n",
        "                      res = out.content.data[\"text/plain\"];\n",
        "                    }\n",
        "                    // if output is a python error\n",
        "                    else if(out.msg_type == \"pyerr\"){\n",
        "                      res = out.content.ename + \": \" + out.content.evalue;\n",
        "                      alert(res);\n",
        "                    }\n",
        "                    // if output is something we haven't thought of\n",
        "                    else{\n",
        "                      res = \"[out type not implemented]\";\n",
        "                      alert(res);\n",
        "                    }\n",
        "                    model.set(\"line\", JSON.parse(res));\n",
        "                }\n",
        "            }\n",
        "        };\n",
        "        IPython.notebook.kernel.execute(command, callbacks, {silent:false});\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "\n",
        "var ToolsView = Backbone.View.extend({\n",
        "\n",
        "    /**\n",
        "        This view renders toolbar with slider and other html elements.\n",
        "    */\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        _.bindAll(this, 'render');\n",
        "    },\n",
        "\n",
        "    render: function() {\n",
        "        var template = _.template($(\"#tools-template\").html(), {});\n",
        "        $(this.el).append(template);\n",
        "        return this;\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Listen event changes.\n",
        "    */\n",
        "    events: {\n",
        "        \"change #slider1\": \"changeSlider1\",\n",
        "        \"change #boundary_conditions\": \"changeBoundaryConditions\",\n",
        "        \"change #young\": \"changeModulus\",\n",
        "        \"change #useFEM\": \"changeUseFEM\"\n",
        "    },\n",
        "\n",
        "    changeSlider1: function(ev) {\n",
        "        var sliderPosition = $(ev.currentTarget).val();\n",
        "        this.model.set('sliderPosition', sliderPosition);\n",
        "        $(this.el).find(\"#slider1label\").text(parseFloat(sliderPosition).toFixed(2));\n",
        "    },\n",
        "\n",
        "    changeBoundaryConditions: function(ev) {\n",
        "        this.model.set('boundaryCondition', $(ev.currentTarget).val());\n",
        "    },\n",
        "\n",
        "    changeModulus: function(ev) {\n",
        "        this.model.set('youngsModulus', $(ev.currentTarget).val());\n",
        "    },\n",
        "\n",
        "    changeUseFEM: function(ev) {\n",
        "        var isChecked = $(ev.currentTarget).is(\":checked\");\n",
        "        this.model.set('useFEM', isChecked);\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "var CanvasView = Backbone.View.extend({\n",
        "\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        this.line = mpld3.get_element(this.options.props.idline);\n",
        "        _.bindAll(this, 'render');\n",
        "        this.model.bind('change:line', this.render);\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Update line when model changes, f.e. new data is calculated\n",
        "        inside notebook and updated to Backbone model.\n",
        "    */\n",
        "    render: function() {\n",
        "        this.line.elements().transition()\n",
        "            .attr(\"d\", this.line.datafunc(this.model.get('line')))\n",
        "            .style(\"stroke\", \"black\");\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "// PLUGIN START\n",
        "\n",
        "mpld3.register_plugin(\"myuserinterface\", MyUserInterfacePlugin);\n",
        "MyUserInterfacePlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
        "MyUserInterfacePlugin.prototype.constructor = MyUserInterfacePlugin;\n",
        "MyUserInterfacePlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
        "MyUserInterfacePlugin.prototype.defaultProps = {}\n",
        "\n",
        "function MyUserInterfacePlugin(fig, props){\n",
        "    mpld3.Plugin.call(this, fig, props);\n",
        "};\n",
        "\n",
        "MyUserInterfacePlugin.prototype.draw = function() {\n",
        "\n",
        "    // Some hacking to get proper layout.\n",
        "    var div = $(\"#\" + this.fig.figid).attr(\"style\", \"border: 1px solid;\");\n",
        "    var figdiv = div.find(\"div\");\n",
        "    figdiv.attr(\"style\", \"display: inline;\");\n",
        "\n",
        "    // Create LineModel\n",
        "    var lineModel = new LineModel({\n",
        "      callback_func: this.props.callback_func\n",
        "    });\n",
        "\n",
        "    // Create tools view\n",
        "    var myel = $('<div style=\"float: left; margin: 10px 30px;\" id=\"tools\"></div>');\n",
        "    div.append(myel);\n",
        "    var toolsView = new ToolsView({\n",
        "        el: myel,\n",
        "        model: lineModel\n",
        "    });\n",
        "    toolsView.render();\n",
        "\n",
        "    // Create canvas view which updates line visualization when the model is changed\n",
        "    var canvasView = new CanvasView({\n",
        "        el: figdiv,\n",
        "        model: lineModel,\n",
        "        props: this.props\n",
        "    });\n",
        "\n",
        "};\n",
        "\n",
        "       mpld3.draw_figure(\"fig_el54941400945445260328126322641\", {\"axes\": [{\"xlim\": [-0.20000000000000001, 1.2000000000000002], \"yscale\": \"linear\", \"axesbg\": \"#FFFFFF\", \"texts\": [{\"v_baseline\": \"hanging\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"x [m]\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [0.5, -0.080645161290322578], \"rotation\": -0.0, \"id\": \"el5494140094544612624\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Deflection [mm]\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [-0.063823084677419359, 0.5], \"rotation\": -90.0, \"id\": \"el5494140094545512208\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Euler-Bernoulli beam deflection line\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 12.0, \"position\": [0.5, 1.0224014336917562], \"rotation\": -0.0, \"id\": \"el5494140094545727760\"}], \"zoomable\": true, \"images\": [], \"xdomain\": [-0.20000000000000001, 1.2000000000000002], \"ylim\": [-10.0, 5.0], \"paths\": [], \"sharey\": [], \"sharex\": [], \"axesbgalpha\": null, \"axes\": [{\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"color\": \"#000000\", \"alpha\": 0.2, \"dasharray\": \"2,2\", \"gridOn\": true}, \"fontsize\": 10.0, \"position\": \"bottom\", \"nticks\": 9, \"tickvalues\": null}, {\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"color\": \"#000000\", \"alpha\": 0.2, \"dasharray\": \"2,2\", \"gridOn\": true}, \"fontsize\": 10.0, \"position\": \"left\", \"nticks\": 9, \"tickvalues\": null}], \"lines\": [{\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 0.5, \"xindex\": 0, \"linewidth\": 3, \"data\": \"data01\", \"id\": \"el5494140094545417424\"}, {\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 1, \"xindex\": 0, \"linewidth\": 1, \"data\": \"data02\", \"id\": \"el5494140094545417296\"}, {\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 1, \"xindex\": 2, \"linewidth\": 1, \"data\": \"data02\", \"id\": \"el5494140094545418000\"}], \"markers\": [], \"id\": \"el5494140094544526992\", \"ydomain\": [-10.0, 5.0], \"collections\": [], \"xscale\": \"linear\", \"bbox\": [0.125, 0.125, 0.77500000000000002, 0.77500000000000002]}], \"height\": 320.0, \"width\": 640.0, \"plugins\": [{\"type\": \"reset\"}, {\"enabled\": false, \"button\": true, \"type\": \"zoom\"}, {\"enabled\": false, \"button\": true, \"type\": \"boxzoom\"}, {\"idline\": \"el5494140094545417424\", \"type\": \"myuserinterface\", \"callback_func\": \"runCalculation\"}], \"data\": {\"data02\": [[0.975, -1.0, -0.025], [1.025, -1.0, 0.025], [1.0, 0.0, 0.0], [0.975, -1.0, -0.025]], \"data01\": [[0.0, -0.0], [0.002004008016032064, -0.037574949095785154], [0.004008016032064128, -0.075148690962674], [0.0060120240480961915, -0.11272001837177029], [0.008016032064128256, -0.1502877240941777], [0.01002004008016032, -0.187850600901], [0.012024048096192383, -0.2254074415633408], [0.014028056112224447, -0.26295703885230387], [0.01603206412825651, -0.300498185538993], [0.018036072144288574, -0.3380296743945117], [0.02004008016032064, -0.37555029818996394], [0.022044088176352703, -0.4130588496964532], [0.024048096192384766, -0.4505541216850832], [0.026052104208416832, -0.4880349069269579], [0.028056112224448895, -0.5254999981931807], [0.03006012024048096, -0.5629481882548556], [0.03206412825651302, -0.600378269883086], [0.03406813627254509, -0.637789035848976], [0.03607214428857715, -0.6751792789236288], [0.038076152304609215, -0.7125477918781487], [0.04008016032064128, -0.749893367483639], [0.04208416833667334, -0.7872147985112035], [0.044088176352705406, -0.8245108777319458], [0.04609218436873747, -0.8617803979169701], [0.04809619238476953, -0.8990221518373793], [0.0501002004008016, -0.9362349322642778], [0.052104208416833664, -0.9734175319687692], [0.05410821643286573, -1.010568743721957], [0.05611222444889779, -1.047687360294945], [0.058116232464929855, -1.0847721744588368], [0.06012024048096192, -1.1218219789847361], [0.06212424849699398, -1.158835566643747], [0.06412825651302605, -1.195811730206973], [0.06613226452905811, -1.2327492624455179], [0.06813627254509018, -1.2696469561304848], [0.07014028056112225, -1.3065036040329783], [0.0721442885771543, -1.3433179989241015], [0.07414829659318636, -1.3800889335749582], [0.07615230460921843, -1.4168152007566526], [0.0781563126252505, -1.4534955932402875], [0.08016032064128256, -1.4901289037969674], [0.08216432865731463, -1.526713925197796], [0.08416833667334668, -1.5632494502138763], [0.08617234468937875, -1.5997342716163128], [0.08817635270541081, -1.6361671821762087], [0.09018036072144288, -1.672546974664668], [0.09218436873747494, -1.708872441852794], [0.09418837675350701, -1.7451423765116914], [0.09619238476953906, -1.7813555714124623], [0.09819639278557113, -1.8175108193262117], [0.1002004008016032, -1.8536069130240433], [0.10220440881763526, -1.88964264527706], [0.10420841683366733, -1.9256168088563665], [0.1062124248496994, -1.9615281965330655], [0.10821643286573146, -1.9973756010782615], [0.11022044088176351, -2.0331578152630576], [0.11222444889779558, -2.068873631858558], [0.11422845691382764, -2.104521843635866], [0.11623246492985971, -2.1401012433660855], [0.11823647294589178, -2.175610623820321], [0.12024048096192384, -2.211048777769675], [0.1222444889779559, -2.2464144979852514], [0.12424849699398796, -2.281706577238154], [0.12625250501002003, -2.3169238082994874], [0.1282565130260521, -2.3520649839403545], [0.13026052104208416, -2.387128896931859], [0.13226452905811623, -2.4221143400451046], [0.1342685370741483, -2.4570201060511954], [0.13627254509018036, -2.4918449877212345], [0.13827655310621242, -2.526587777826326], [0.1402805611222445, -2.5612472691375743], [0.14228456913827653, -2.595822254426081], [0.1442885771543086, -2.6303115264629526], [0.14629258517034066, -2.66471387801929], [0.14829659318637273, -2.6990281018661997], [0.1503006012024048, -2.7332529907747833], [0.15230460921843686, -2.7673873375161455], [0.15430861723446893, -2.8014299348613894], [0.156312625250501, -2.8353795755816193], [0.15831663326653306, -2.8692350524479386], [0.16032064128256512, -2.9029951582314513], [0.1623246492985972, -2.936658685703261], [0.16432865731462926, -2.970224427634471], [0.16633266533066132, -3.003691176796185], [0.16833667334669336, -3.037057725959507], [0.17034068136272543, -3.070322867895541], [0.1723446893787575, -3.1034853953753907], [0.17434869739478956, -3.13654410117016], [0.17635270541082163, -3.169497778050951], [0.1783567134268537, -3.2023452187888695], [0.18036072144288576, -3.2350852161550185], [0.18236472945891782, -3.2677165629205005], [0.1843687374749499, -3.3002380518564207], [0.18637274549098196, -3.332648475733882], [0.18837675350701402, -3.3649466273239894], [0.1903807615230461, -3.3971312993978446], [0.19238476953907813, -3.429201284726553], [0.1943887775551102, -3.461155376081217], [0.19639278557114226, -3.492992366232942], [0.19839679358717432, -3.52471104795283], [0.2004008016032064, -3.5563102140119853], [0.20240480961923846, -3.587788657181512], [0.20440881763527052, -3.6191451702325135], [0.2064128256513026, -3.6503785459360936], [0.20841683366733466, -3.681487577063356], [0.21042084168336672, -3.7124710563854038], [0.2124248496993988, -3.7433277766733424], [0.21442885771543085, -3.7740565306982736], [0.21643286573146292, -3.804656111231302], [0.21843687374749496, -3.83512531104353], [0.22044088176352702, -3.865462922906064], [0.2224448897795591, -3.8956677395900066], [0.22444889779559116, -3.92573855386646], [0.22645290581162322, -3.9556741585065303], [0.2284569138276553, -3.9854733462813186], [0.23046092184368736, -4.015134909961931], [0.23246492985971942, -4.0446576423194704], [0.2344689378757515, -4.074040336125039], [0.23647294589178355, -4.103281784149742], [0.23847695390781562, -4.132380779164685], [0.24048096192384769, -4.161336113940967], [0.24248496993987975, -4.190146581249696], [0.2444889779559118, -4.218810973861973], [0.24649298597194386, -4.247328084548903], [0.24849699398797592, -4.27569670608159], [0.250501002004008, -4.3039156312311375], [0.25250501002004005, -4.331983652768647], [0.2545090180360721, -4.359899563465226], [0.2565130260521042, -4.3876621560919755], [0.25851703406813625, -4.415270223420001], [0.2605210420841683, -4.442722558220404], [0.2625250501002004, -4.47001795326429], [0.26452905811623245, -4.497155201322762], [0.2665330661322645, -4.524133095166925], [0.2685370741482966, -4.550950427567879], [0.27054108216432865, -4.577605991296733], [0.2725450901803607, -4.604098579124586], [0.2745490981963928, -4.630426983822546], [0.27655310621242485, -4.656589998161712], [0.2785571142284569, -4.682586414913192], [0.280561122244489, -4.708415026848087], [0.282565130260521, -4.734074626737501], [0.28456913827655306, -4.759564007352538], [0.2865731462925851, -4.784881961464303], [0.2885771543086172, -4.810027281843899], [0.29058116232464926, -4.834998761262429], [0.2925851703406813, -4.8597951924909975], [0.2945891783567134, -4.884415368300707], [0.29659318637274545, -4.908858081462663], [0.2985971943887775, -4.9331221247479675], [0.3006012024048096, -4.957206290927725], [0.30260521042084165, -4.98110937277304], [0.3046092184368737, -5.004830163055015], [0.3066132264529058, -5.028367454544754], [0.30861723446893785, -5.05172004001336], [0.3106212424849699, -5.0748867122319385], [0.312625250501002, -5.097866263971592], [0.31462925851703405, -5.120657488003425], [0.3166332665330661, -5.14325917709854], [0.3186372745490982, -5.165670124028041], [0.32064128256513025, -5.187889121563033], [0.3226452905811623, -5.209914962474618], [0.3246492985971944, -5.231746439533901], [0.32665330661322645, -5.253382345511985], [0.3286573146292585, -5.274821473179974], [0.3306613226452906, -5.296062615308971], [0.33266533066132264, -5.317104564670081], [0.33466933867735466, -5.337946114034406], [0.3366733466933867, -5.358586056173053], [0.3386773547094188, -5.379023183857121], [0.34068136272545085, -5.3992562898577185], [0.3426853707414829, -5.419284166945945], [0.344689378757515, -5.439105607892908], [0.34669338677354705, -5.458719405469707], [0.3486973947895791, -5.478124352447451], [0.3507014028056112, -5.497319241597237], [0.35270541082164325, -5.516302865690177], [0.3547094188376753, -5.535074017497365], [0.3567134268537074, -5.553631489789915], [0.35871743486973945, -5.571974075338922], [0.3607214428857715, -5.590100566915495], [0.3627254509018036, -5.608009757290734], [0.36472945891783565, -5.6257004392357475], [0.3667334669338677, -5.643171405521635], [0.3687374749498998, -5.660421448919502], [0.37074148296593185, -5.677449362200451], [0.3727454909819639, -5.6942539381355886], [0.374749498997996, -5.710833969496013], [0.37675350701402804, -5.727188249052835], [0.3787575150300601, -5.7433155695771525], [0.3807615230460922, -5.759214723840073], [0.38276553106212424, -5.774884504612697], [0.38476953907815625, -5.79032370466613], [0.3867735470941883, -5.805531116771476], [0.3887775551102204, -5.820505533699839], [0.39078156312625245, -5.835245748222322], [0.3927855711422845, -5.849750553110027], [0.3947895791583166, -5.86401874113406], [0.39679358717434865, -5.878049105065526], [0.3987975951903807, -5.891840437675525], [0.4008016032064128, -5.905391531735162], [0.40280561122244485, -5.918701180015542], [0.4048096192384769, -5.931768175287769], [0.406813627254509, -5.944591310322945], [0.40881763527054105, -5.957169377892173], [0.4108216432865731, -5.969501170766559], [0.4128256513026052, -5.981585481717207], [0.41482965931863724, -5.993421103515219], [0.4168336673346693, -6.005006828931698], [0.4188376753507014, -6.016341450737749], [0.42084168336673344, -6.027423761704477], [0.4228456913827655, -6.038252554602984], [0.4248496993987976, -6.048826622204373], [0.42685370741482964, -6.059144757279748], [0.4288577154308617, -6.069205752600216], [0.4308617234468938, -6.079008400936877], [0.43286573146292584, -6.088551495060837], [0.4348697394789579, -6.097833827743196], [0.4368737474949899, -6.106854191755063], [0.438877755511022, -6.115611379867539], [0.44088176352705405, -6.124104184851726], [0.4428857715430861, -6.13233139947873], [0.4448897795591182, -6.140291816519654], [0.44689378757515025, -6.147984228745603], [0.4488977955911823, -6.155407428927679], [0.4509018036072144, -6.162560209836985], [0.45290581162324645, -6.169441364244628], [0.4549098196392785, -6.1760496849217095], [0.4569138276553106, -6.182383964639333], [0.45891783567134264, -6.188442996168601], [0.4609218436873747, -6.1942255722806205], [0.4629258517034068, -6.199730485746494], [0.46492985971943884, -6.204956529337324], [0.4669338677354709, -6.209902495824216], [0.468937875751503, -6.214567177978272], [0.47094188376753504, -6.2189493685705965], [0.4729458917835671, -6.223047860372292], [0.4749498997995992, -6.226861446154465], [0.47695390781563124, -6.230388918688217], [0.4789579158316633, -6.2336290707446524], [0.48096192384769537, -6.236580695094873], [0.48296593186372744, -6.239242584509987], [0.4849699398797595, -6.241613531761094], [0.48697394789579157, -6.243692329619299], [0.4889779559118236, -6.245477770855705], [0.49098196392785565, -6.2469686482414195], [0.4929859719438877, -6.248163754547542], [0.4949899799599198, -6.249061882545176], [0.49699398797595185, -6.249661825005426], [0.4989979959919839, -6.2499623746993995], [0.501002004008016, -6.2499623746994], [0.503006012024048, -6.249661825005428], [0.5050100200400801, -6.249061882545176], [0.5070140280561122, -6.248163754547541], [0.5090180360721442, -6.24696864824142], [0.5110220440881763, -6.2454777708557065], [0.5130260521042084, -6.243692329619299], [0.5150300601202404, -6.241613531761094], [0.5170340681362725, -6.239242584509988], [0.5190380761523046, -6.236580695094873], [0.5210420841683366, -6.233629070744651], [0.5230460921843687, -6.230388918688217], [0.5250501002004008, -6.226861446154465], [0.5270541082164328, -6.223047860372292], [0.5290581162324649, -6.218949368570596], [0.531062124248497, -6.214567177978272], [0.533066132264529, -6.209902495824217], [0.5350701402805611, -6.204956529337325], [0.5370741482965932, -6.199730485746494], [0.5390781563126252, -6.194225572280621], [0.5410821643286573, -6.188442996168602], [0.5430861723446894, -6.182383964639333], [0.5450901803607214, -6.1760496849217095], [0.5470941883767535, -6.169441364244629], [0.5490981963927856, -6.162560209836986], [0.5511022044088176, -6.155407428927679], [0.5531062124248497, -6.147984228745602], [0.5551102204408818, -6.140291816519655], [0.5571142284569138, -6.132331399478731], [0.5591182364729459, -6.124104184851726], [0.561122244488978, -6.115611379867538], [0.56312625250501, -6.106854191755064], [0.565130260521042, -6.097833827743197], [0.567134268537074, -6.088551495060837], [0.5691382765531061, -6.079008400936877], [0.5711422845691382, -6.069205752600218], [0.5731462925851702, -6.05914475727975], [0.5751503006012023, -6.0488266222043725], [0.5771543086172344, -6.038252554602984], [0.5791583166332664, -6.027423761704478], [0.5811623246492985, -6.01634145073775], [0.5831663326653306, -6.005006828931698], [0.5851703406813626, -5.993421103515218], [0.5871743486973947, -5.981585481717209], [0.5891783567134268, -5.969501170766561], [0.5911823647294588, -5.957169377892173], [0.5931863727454909, -5.944591310322945], [0.595190380761523, -5.931768175287771], [0.597194388777555, -5.918701180015543], [0.5991983967935871, -5.905391531735162], [0.6012024048096192, -5.891840437675525], [0.6032064128256512, -5.878049105065527], [0.6052104208416833, -5.864018741134061], [0.6072144288577154, -5.849750553110027], [0.6092184368737474, -5.835245748222322], [0.6112224448897795, -5.820505533699841], [0.6132264529058116, -5.805531116771477], [0.6152304609218436, -5.790323704666131], [0.6172344689378757, -5.774884504612698], [0.6192384769539078, -5.759214723840073], [0.6212424849699398, -5.7433155695771525], [0.6232464929859719, -5.727188249052834], [0.625250501002004, -5.710833969496014], [0.627254509018036, -5.6942539381355886], [0.6292585170340681, -5.677449362200451], [0.6312625250501002, -5.660421448919502], [0.6332665330661322, -5.643171405521636], [0.6352705410821643, -5.625700439235749], [0.6372745490981964, -5.608009757290736], [0.6392785571142284, -5.590100566915495], [0.6412825651302605, -5.571974075338923], [0.6432865731462926, -5.5536314897899155], [0.6452905811623246, -5.535074017497366], [0.6472945891783567, -5.516302865690176], [0.6492985971943888, -5.497319241597238], [0.6513026052104208, -5.478124352447452], [0.6533066132264529, -5.458719405469709], [0.655310621242485, -5.439105607892907], [0.657314629258517, -5.419284166945945], [0.6593186372745491, -5.399256289857719], [0.6613226452905812, -5.379023183857122], [0.6633266533066132, -5.358586056173052], [0.6653306613226453, -5.337946114034406], [0.6673346693386772, -5.317104564670083], [0.6693386773547093, -5.296062615308972], [0.6713426853707414, -5.2748214731799745], [0.6733466933867734, -5.253382345511987], [0.6753507014028055, -5.231746439533902], [0.6773547094188376, -5.209914962474618], [0.6793587174348696, -5.187889121563035], [0.6813627254509017, -5.1656701240280425], [0.6833667334669338, -5.143259177098542], [0.6853707414829658, -5.120657488003425], [0.6873747494989979, -5.097866263971592], [0.68937875751503, -5.07488671223194], [0.691382765531062, -5.051720040013362], [0.6933867735470941, -5.028367454544754], [0.6953907815631262, -5.004830163055018], [0.6973947895791582, -4.981109372773042], [0.6993987975951903, -4.957206290927726], [0.7014028056112224, -4.933122124747968], [0.7034068136272544, -4.908858081462664], [0.7054108216432865, -4.884415368300709], [0.7074148296593186, -4.859795192490999], [0.7094188376753506, -4.8349987612624306], [0.7114228456913827, -4.810027281843901], [0.7134268537074148, -4.784881961464306], [0.7154308617234468, -4.759564007352539], [0.7174348697394789, -4.734074626737501], [0.719438877755511, -4.708415026848086], [0.721442885771543, -4.682586414913194], [0.7234468937875751, -4.656589998161713], [0.7254509018036072, -4.630426983822545], [0.7274549098196392, -4.604098579124589], [0.7294589178356713, -4.577605991296733], [0.7314629258517034, -4.55095042756788], [0.7334669338677354, -4.524133095166925], [0.7354709418837675, -4.497155201322761], [0.7374749498997996, -4.470017953264292], [0.7394789579158316, -4.442722558220406], [0.7414829659318637, -4.415270223420001], [0.7434869739478958, -4.387662156091978], [0.7454909819639278, -4.359899563465228], [0.7474949899799599, -4.331983652768648], [0.749498997995992, -4.303915631231137], [0.751503006012024, -4.27569670608159], [0.7535070140280561, -4.247328084548905], [0.7555110220440882, -4.218810973861974], [0.7575150300601202, -4.190146581249696], [0.7595190380761523, -4.161336113940969], [0.7615230460921844, -4.132380779164685], [0.7635270541082164, -4.103281784149743], [0.7655310621242485, -4.074040336125039], [0.7675350701402806, -4.04465764231947], [0.7695390781563125, -4.015134909961933], [0.7715430861723446, -3.9854733462813194], [0.7735470941883766, -3.9556741585065303], [0.7755511022044087, -3.925738553866463], [0.7775551102204408, -3.895667739590008], [0.7795591182364728, -3.8654629229060657], [0.7815631262525049, -3.8351253110435346], [0.783567134268537, -3.8046561112313038], [0.785571142284569, -3.774056530698276], [0.7875751503006011, -3.7433277766733437], [0.7895791583166332, -3.712471056385405], [0.7915831663326652, -3.6814875770633577], [0.7935871743486973, -3.650378545936095], [0.7955911823647294, -3.6191451702325135], [0.7975951903807614, -3.587788657181515], [0.7995991983967935, -3.556310214011989], [0.8016032064128256, -3.5247110479528323], [0.8036072144288576, -3.492992366232942], [0.8056112224448897, -3.4611553760812175], [0.8076152304609218, -3.4292012847265543], [0.8096192384769538, -3.3971312993978473], [0.8116232464929859, -3.3649466273239894], [0.813627254509018, -3.3326484757338863], [0.81563126252505, -3.3002380518564225], [0.8176352705410821, -3.267716562920502], [0.8196392785571142, -3.2350852161550185], [0.8216432865731462, -3.2023452187888686], [0.8236472945891783, -3.169497778050952], [0.8256513026052104, -3.1365441011701622], [0.8276553106212424, -3.1034853953753903], [0.8296593186372745, -3.070322867895544], [0.8316633266533066, -3.037057725959509], [0.8336673346693386, -3.003691176796186], [0.8356713426853707, -2.970224427634471], [0.8376753507014028, -2.9366586857032617], [0.8396793587174348, -2.9029951582314526], [0.8416833667334669, -2.8692350524479395], [0.843687374749499, -2.8353795755816207], [0.845691382765531, -2.8014299348613907], [0.8476953907815631, -2.7673873375161473], [0.8496993987975952, -2.733252990774784], [0.8517034068136272, -2.6990281018662], [0.8537074148296593, -2.6647138780192887], [0.8557114228456913, -2.6303115264629535], [0.8577154308617234, -2.595822254426081], [0.8597194388777555, -2.561247269137575], [0.8617234468937875, -2.526587777826328], [0.8637274549098196, -2.4918449877212367], [0.8657314629258517, -2.4570201060511954], [0.8677354709418837, -2.4221143400451037], [0.8697394789579158, -2.387128896931859], [0.8717434869739479, -2.3520649839403553], [0.8737474949899798, -2.3169238082994896], [0.8757515030060119, -2.281706577238154], [0.877755511022044, -2.2464144979852554], [0.879759519038076, -2.2110487777696783], [0.8817635270541081, -2.1756106238203214], [0.8837675350701402, -2.1401012433660904], [0.8857715430861722, -2.1045218436358684], [0.8877755511022043, -2.0688736318585588], [0.8897795591182364, -2.03315781526306], [0.8917835671342684, -1.9973756010782615], [0.8937875751503005, -1.9615281965330695], [0.8957915831663326, -1.9256168088563674], [0.8977955911823646, -1.889642645277063], [0.8997995991983967, -1.853606913024047], [0.9018036072144288, -1.817510819326216], [0.9038076152304608, -1.7813555714124643], [0.9058116232464929, -1.745142376511693], [0.907815631262525, -1.708872441852794], [0.909819639278557, -1.6725469746646688], [0.9118236472945891, -1.6361671821762098], [0.9138276553106212, -1.599734271616314], [0.9158316633266532, -1.56324945021388], [0.9178356713426853, -1.5267139251977973], [0.9198396793587174, -1.4901289037969696], [0.9218436873747494, -1.4534955932402887], [0.9238476953907815, -1.4168152007566537], [0.9258517034068136, -1.3800889335749613], [0.9278557114228456, -1.343317998924102], [0.9298597194388777, -1.3065036040329785], [0.9318637274549098, -1.2696469561304866], [0.9338677354709418, -1.2327492624455185], [0.9358717434869739, -1.1958117302069755], [0.937875751503006, -1.158835566643749], [0.939879759519038, -1.121821978984737], [0.9418837675350701, -1.0847721744588381], [0.9438877755511021, -1.0476873602949452], [0.9458917835671342, -1.0105687437219577], [0.9478957915831663, -0.9734175319687712], [0.9498997995991983, -0.9362349322642807], [0.9519038076152304, -0.8990221518373795], [0.9539078156312625, -0.8617803979169705], [0.9559118236472945, -0.824510877731946], [0.9579158316633266, -0.7872147985112037], [0.9599198396793587, -0.7498933674836396], [0.9619238476953907, -0.712547791878148], [0.9639278557114228, -0.6751792789236308], [0.9659318637274549, -0.6377890358489763], [0.9679358717434869, -0.6003782698830854], [0.969939879759519, -0.562948188254854], [0.9719438877755511, -0.5254999981931804], [0.9739478957915831, -0.4880349069269583], [0.9759519038076151, -0.4505541216850852], [0.9779559118236472, -0.4130588496964537], [0.9799599198396792, -0.3755502981899674], [0.9819639278557113, -0.3380296743945147], [0.9839679358717434, -0.30049818553899577], [0.9859719438877754, -0.2629570388523079], [0.9879759519038075, -0.22540744156334463], [0.9899799599198396, -0.18785060090100308], [0.9919839679358716, -0.15028772409417873], [0.9939879759519037, -0.11272001837176956], [0.9959919839679358, -0.07514869096267654], [0.9979959919839678, -0.037574949095788714], [1.0, -0.0]]}, \"id\": \"el5494140094544526032\"});\n",
        "   }(mpld3);\n",
        "}else if(typeof define === \"function\" && define.amd){\n",
        "   // require.js is available: use it to load d3/mpld3\n",
        "   require.config({paths: {d3: \"https://mpld3.github.io/js/d3.v3.min\"}});\n",
        "   require([\"d3\"], function(d3){\n",
        "      window.d3 = d3;\n",
        "      mpld3_load_lib(\"https://mpld3.github.io/js/mpld3.v0.2.js\", function(){\n",
        "         \n",
        "\n",
        "var LineModel = Backbone.Model.extend({\n",
        "\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        this.on(\"change:sliderPosition\", this.modelChanged);\n",
        "        this.on(\"change:boundaryCondition\", this.notImplemented);\n",
        "        this.on(\"change:youngsModulus\", this.notImplemented);\n",
        "        this.on(\"change:useFEM\", this.notImplemented);\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        This example should be quite easy to extend to use more inputs. You\n",
        "        just have to pass more model.get('...') things to kernel execute command below.\n",
        "    */\n",
        "    notImplemented: function(model) {\n",
        "        alert(\"This function is not implemented in the example on purpose.\");\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Model changed, execute notebook kernel and update model data.\n",
        "    */\n",
        "    modelChanged: function(model) {\n",
        "        var command = this.options.callback_func + \"(\" + model.get('sliderPosition') + \")\";\n",
        "        console.log(\"IPython kernel execute \"+command);\n",
        "        var callbacks = {\n",
        "            'iopub' : {\n",
        "                'output' : function(out) {\n",
        "                    //console.log(out);\n",
        "                    var res = null;\n",
        "                    // if output is a print statement\n",
        "                    if (out.msg_type == \"stream\"){\n",
        "                      res = out.content.data;\n",
        "                    }\n",
        "                    // if output is a python object\n",
        "                    else if(out.msg_type === \"pyout\"){\n",
        "                      res = out.content.data[\"text/plain\"];\n",
        "                    }\n",
        "                    // if output is a python error\n",
        "                    else if(out.msg_type == \"pyerr\"){\n",
        "                      res = out.content.ename + \": \" + out.content.evalue;\n",
        "                      alert(res);\n",
        "                    }\n",
        "                    // if output is something we haven't thought of\n",
        "                    else{\n",
        "                      res = \"[out type not implemented]\";\n",
        "                      alert(res);\n",
        "                    }\n",
        "                    model.set(\"line\", JSON.parse(res));\n",
        "                }\n",
        "            }\n",
        "        };\n",
        "        IPython.notebook.kernel.execute(command, callbacks, {silent:false});\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "\n",
        "var ToolsView = Backbone.View.extend({\n",
        "\n",
        "    /**\n",
        "        This view renders toolbar with slider and other html elements.\n",
        "    */\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        _.bindAll(this, 'render');\n",
        "    },\n",
        "\n",
        "    render: function() {\n",
        "        var template = _.template($(\"#tools-template\").html(), {});\n",
        "        $(this.el).append(template);\n",
        "        return this;\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Listen event changes.\n",
        "    */\n",
        "    events: {\n",
        "        \"change #slider1\": \"changeSlider1\",\n",
        "        \"change #boundary_conditions\": \"changeBoundaryConditions\",\n",
        "        \"change #young\": \"changeModulus\",\n",
        "        \"change #useFEM\": \"changeUseFEM\"\n",
        "    },\n",
        "\n",
        "    changeSlider1: function(ev) {\n",
        "        var sliderPosition = $(ev.currentTarget).val();\n",
        "        this.model.set('sliderPosition', sliderPosition);\n",
        "        $(this.el).find(\"#slider1label\").text(parseFloat(sliderPosition).toFixed(2));\n",
        "    },\n",
        "\n",
        "    changeBoundaryConditions: function(ev) {\n",
        "        this.model.set('boundaryCondition', $(ev.currentTarget).val());\n",
        "    },\n",
        "\n",
        "    changeModulus: function(ev) {\n",
        "        this.model.set('youngsModulus', $(ev.currentTarget).val());\n",
        "    },\n",
        "\n",
        "    changeUseFEM: function(ev) {\n",
        "        var isChecked = $(ev.currentTarget).is(\":checked\");\n",
        "        this.model.set('useFEM', isChecked);\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "var CanvasView = Backbone.View.extend({\n",
        "\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        this.line = mpld3.get_element(this.options.props.idline);\n",
        "        _.bindAll(this, 'render');\n",
        "        this.model.bind('change:line', this.render);\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Update line when model changes, f.e. new data is calculated\n",
        "        inside notebook and updated to Backbone model.\n",
        "    */\n",
        "    render: function() {\n",
        "        this.line.elements().transition()\n",
        "            .attr(\"d\", this.line.datafunc(this.model.get('line')))\n",
        "            .style(\"stroke\", \"black\");\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "// PLUGIN START\n",
        "\n",
        "mpld3.register_plugin(\"myuserinterface\", MyUserInterfacePlugin);\n",
        "MyUserInterfacePlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
        "MyUserInterfacePlugin.prototype.constructor = MyUserInterfacePlugin;\n",
        "MyUserInterfacePlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
        "MyUserInterfacePlugin.prototype.defaultProps = {}\n",
        "\n",
        "function MyUserInterfacePlugin(fig, props){\n",
        "    mpld3.Plugin.call(this, fig, props);\n",
        "};\n",
        "\n",
        "MyUserInterfacePlugin.prototype.draw = function() {\n",
        "\n",
        "    // Some hacking to get proper layout.\n",
        "    var div = $(\"#\" + this.fig.figid).attr(\"style\", \"border: 1px solid;\");\n",
        "    var figdiv = div.find(\"div\");\n",
        "    figdiv.attr(\"style\", \"display: inline;\");\n",
        "\n",
        "    // Create LineModel\n",
        "    var lineModel = new LineModel({\n",
        "      callback_func: this.props.callback_func\n",
        "    });\n",
        "\n",
        "    // Create tools view\n",
        "    var myel = $('<div style=\"float: left; margin: 10px 30px;\" id=\"tools\"></div>');\n",
        "    div.append(myel);\n",
        "    var toolsView = new ToolsView({\n",
        "        el: myel,\n",
        "        model: lineModel\n",
        "    });\n",
        "    toolsView.render();\n",
        "\n",
        "    // Create canvas view which updates line visualization when the model is changed\n",
        "    var canvasView = new CanvasView({\n",
        "        el: figdiv,\n",
        "        model: lineModel,\n",
        "        props: this.props\n",
        "    });\n",
        "\n",
        "};\n",
        "\n",
        "         mpld3.draw_figure(\"fig_el54941400945445260328126322641\", {\"axes\": [{\"xlim\": [-0.20000000000000001, 1.2000000000000002], \"yscale\": \"linear\", \"axesbg\": \"#FFFFFF\", \"texts\": [{\"v_baseline\": \"hanging\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"x [m]\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [0.5, -0.080645161290322578], \"rotation\": -0.0, \"id\": \"el5494140094544612624\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Deflection [mm]\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [-0.063823084677419359, 0.5], \"rotation\": -90.0, \"id\": \"el5494140094545512208\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Euler-Bernoulli beam deflection line\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 12.0, \"position\": [0.5, 1.0224014336917562], \"rotation\": -0.0, \"id\": \"el5494140094545727760\"}], \"zoomable\": true, \"images\": [], \"xdomain\": [-0.20000000000000001, 1.2000000000000002], \"ylim\": [-10.0, 5.0], \"paths\": [], \"sharey\": [], \"sharex\": [], \"axesbgalpha\": null, \"axes\": [{\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"color\": \"#000000\", \"alpha\": 0.2, \"dasharray\": \"2,2\", \"gridOn\": true}, \"fontsize\": 10.0, \"position\": \"bottom\", \"nticks\": 9, \"tickvalues\": null}, {\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"color\": \"#000000\", \"alpha\": 0.2, \"dasharray\": \"2,2\", \"gridOn\": true}, \"fontsize\": 10.0, \"position\": \"left\", \"nticks\": 9, \"tickvalues\": null}], \"lines\": [{\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 0.5, \"xindex\": 0, \"linewidth\": 3, \"data\": \"data01\", \"id\": \"el5494140094545417424\"}, {\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 1, \"xindex\": 0, \"linewidth\": 1, \"data\": \"data02\", \"id\": \"el5494140094545417296\"}, {\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 1, \"xindex\": 2, \"linewidth\": 1, \"data\": \"data02\", \"id\": \"el5494140094545418000\"}], \"markers\": [], \"id\": \"el5494140094544526992\", \"ydomain\": [-10.0, 5.0], \"collections\": [], \"xscale\": \"linear\", \"bbox\": [0.125, 0.125, 0.77500000000000002, 0.77500000000000002]}], \"height\": 320.0, \"width\": 640.0, \"plugins\": [{\"type\": \"reset\"}, {\"enabled\": false, \"button\": true, \"type\": \"zoom\"}, {\"enabled\": false, \"button\": true, \"type\": \"boxzoom\"}, {\"idline\": \"el5494140094545417424\", \"type\": \"myuserinterface\", \"callback_func\": \"runCalculation\"}], \"data\": {\"data02\": [[0.975, -1.0, -0.025], [1.025, -1.0, 0.025], [1.0, 0.0, 0.0], [0.975, -1.0, -0.025]], \"data01\": [[0.0, -0.0], [0.002004008016032064, -0.037574949095785154], [0.004008016032064128, -0.075148690962674], [0.0060120240480961915, -0.11272001837177029], [0.008016032064128256, -0.1502877240941777], [0.01002004008016032, -0.187850600901], [0.012024048096192383, -0.2254074415633408], [0.014028056112224447, -0.26295703885230387], [0.01603206412825651, -0.300498185538993], [0.018036072144288574, -0.3380296743945117], [0.02004008016032064, -0.37555029818996394], [0.022044088176352703, -0.4130588496964532], [0.024048096192384766, -0.4505541216850832], [0.026052104208416832, -0.4880349069269579], [0.028056112224448895, -0.5254999981931807], [0.03006012024048096, -0.5629481882548556], [0.03206412825651302, -0.600378269883086], [0.03406813627254509, -0.637789035848976], [0.03607214428857715, -0.6751792789236288], [0.038076152304609215, -0.7125477918781487], [0.04008016032064128, -0.749893367483639], [0.04208416833667334, -0.7872147985112035], [0.044088176352705406, -0.8245108777319458], [0.04609218436873747, -0.8617803979169701], [0.04809619238476953, -0.8990221518373793], [0.0501002004008016, -0.9362349322642778], [0.052104208416833664, -0.9734175319687692], [0.05410821643286573, -1.010568743721957], [0.05611222444889779, -1.047687360294945], [0.058116232464929855, -1.0847721744588368], [0.06012024048096192, -1.1218219789847361], [0.06212424849699398, -1.158835566643747], [0.06412825651302605, -1.195811730206973], [0.06613226452905811, -1.2327492624455179], [0.06813627254509018, -1.2696469561304848], [0.07014028056112225, -1.3065036040329783], [0.0721442885771543, -1.3433179989241015], [0.07414829659318636, -1.3800889335749582], [0.07615230460921843, -1.4168152007566526], [0.0781563126252505, -1.4534955932402875], [0.08016032064128256, -1.4901289037969674], [0.08216432865731463, -1.526713925197796], [0.08416833667334668, -1.5632494502138763], [0.08617234468937875, -1.5997342716163128], [0.08817635270541081, -1.6361671821762087], [0.09018036072144288, -1.672546974664668], [0.09218436873747494, -1.708872441852794], [0.09418837675350701, -1.7451423765116914], [0.09619238476953906, -1.7813555714124623], [0.09819639278557113, -1.8175108193262117], [0.1002004008016032, -1.8536069130240433], [0.10220440881763526, -1.88964264527706], [0.10420841683366733, -1.9256168088563665], [0.1062124248496994, -1.9615281965330655], [0.10821643286573146, -1.9973756010782615], [0.11022044088176351, -2.0331578152630576], [0.11222444889779558, -2.068873631858558], [0.11422845691382764, -2.104521843635866], [0.11623246492985971, -2.1401012433660855], [0.11823647294589178, -2.175610623820321], [0.12024048096192384, -2.211048777769675], [0.1222444889779559, -2.2464144979852514], [0.12424849699398796, -2.281706577238154], [0.12625250501002003, -2.3169238082994874], [0.1282565130260521, -2.3520649839403545], [0.13026052104208416, -2.387128896931859], [0.13226452905811623, -2.4221143400451046], [0.1342685370741483, -2.4570201060511954], [0.13627254509018036, -2.4918449877212345], [0.13827655310621242, -2.526587777826326], [0.1402805611222445, -2.5612472691375743], [0.14228456913827653, -2.595822254426081], [0.1442885771543086, -2.6303115264629526], [0.14629258517034066, -2.66471387801929], [0.14829659318637273, -2.6990281018661997], [0.1503006012024048, -2.7332529907747833], [0.15230460921843686, -2.7673873375161455], [0.15430861723446893, -2.8014299348613894], [0.156312625250501, -2.8353795755816193], [0.15831663326653306, -2.8692350524479386], [0.16032064128256512, -2.9029951582314513], [0.1623246492985972, -2.936658685703261], [0.16432865731462926, -2.970224427634471], [0.16633266533066132, -3.003691176796185], [0.16833667334669336, -3.037057725959507], [0.17034068136272543, -3.070322867895541], [0.1723446893787575, -3.1034853953753907], [0.17434869739478956, -3.13654410117016], [0.17635270541082163, -3.169497778050951], [0.1783567134268537, -3.2023452187888695], [0.18036072144288576, -3.2350852161550185], [0.18236472945891782, -3.2677165629205005], [0.1843687374749499, -3.3002380518564207], [0.18637274549098196, -3.332648475733882], [0.18837675350701402, -3.3649466273239894], [0.1903807615230461, -3.3971312993978446], [0.19238476953907813, -3.429201284726553], [0.1943887775551102, -3.461155376081217], [0.19639278557114226, -3.492992366232942], [0.19839679358717432, -3.52471104795283], [0.2004008016032064, -3.5563102140119853], [0.20240480961923846, -3.587788657181512], [0.20440881763527052, -3.6191451702325135], [0.2064128256513026, -3.6503785459360936], [0.20841683366733466, -3.681487577063356], [0.21042084168336672, -3.7124710563854038], [0.2124248496993988, -3.7433277766733424], [0.21442885771543085, -3.7740565306982736], [0.21643286573146292, -3.804656111231302], [0.21843687374749496, -3.83512531104353], [0.22044088176352702, -3.865462922906064], [0.2224448897795591, -3.8956677395900066], [0.22444889779559116, -3.92573855386646], [0.22645290581162322, -3.9556741585065303], [0.2284569138276553, -3.9854733462813186], [0.23046092184368736, -4.015134909961931], [0.23246492985971942, -4.0446576423194704], [0.2344689378757515, -4.074040336125039], [0.23647294589178355, -4.103281784149742], [0.23847695390781562, -4.132380779164685], [0.24048096192384769, -4.161336113940967], [0.24248496993987975, -4.190146581249696], [0.2444889779559118, -4.218810973861973], [0.24649298597194386, -4.247328084548903], [0.24849699398797592, -4.27569670608159], [0.250501002004008, -4.3039156312311375], [0.25250501002004005, -4.331983652768647], [0.2545090180360721, -4.359899563465226], [0.2565130260521042, -4.3876621560919755], [0.25851703406813625, -4.415270223420001], [0.2605210420841683, -4.442722558220404], [0.2625250501002004, -4.47001795326429], [0.26452905811623245, -4.497155201322762], [0.2665330661322645, -4.524133095166925], [0.2685370741482966, -4.550950427567879], [0.27054108216432865, -4.577605991296733], [0.2725450901803607, -4.604098579124586], [0.2745490981963928, -4.630426983822546], [0.27655310621242485, -4.656589998161712], [0.2785571142284569, -4.682586414913192], [0.280561122244489, -4.708415026848087], [0.282565130260521, -4.734074626737501], [0.28456913827655306, -4.759564007352538], [0.2865731462925851, -4.784881961464303], [0.2885771543086172, -4.810027281843899], [0.29058116232464926, -4.834998761262429], [0.2925851703406813, -4.8597951924909975], [0.2945891783567134, -4.884415368300707], [0.29659318637274545, -4.908858081462663], [0.2985971943887775, -4.9331221247479675], [0.3006012024048096, -4.957206290927725], [0.30260521042084165, -4.98110937277304], [0.3046092184368737, -5.004830163055015], [0.3066132264529058, -5.028367454544754], [0.30861723446893785, -5.05172004001336], [0.3106212424849699, -5.0748867122319385], [0.312625250501002, -5.097866263971592], [0.31462925851703405, -5.120657488003425], [0.3166332665330661, -5.14325917709854], [0.3186372745490982, -5.165670124028041], [0.32064128256513025, -5.187889121563033], [0.3226452905811623, -5.209914962474618], [0.3246492985971944, -5.231746439533901], [0.32665330661322645, -5.253382345511985], [0.3286573146292585, -5.274821473179974], [0.3306613226452906, -5.296062615308971], [0.33266533066132264, -5.317104564670081], [0.33466933867735466, -5.337946114034406], [0.3366733466933867, -5.358586056173053], [0.3386773547094188, -5.379023183857121], [0.34068136272545085, -5.3992562898577185], [0.3426853707414829, -5.419284166945945], [0.344689378757515, -5.439105607892908], [0.34669338677354705, -5.458719405469707], [0.3486973947895791, -5.478124352447451], [0.3507014028056112, -5.497319241597237], [0.35270541082164325, -5.516302865690177], [0.3547094188376753, -5.535074017497365], [0.3567134268537074, -5.553631489789915], [0.35871743486973945, -5.571974075338922], [0.3607214428857715, -5.590100566915495], [0.3627254509018036, -5.608009757290734], [0.36472945891783565, -5.6257004392357475], [0.3667334669338677, -5.643171405521635], [0.3687374749498998, -5.660421448919502], [0.37074148296593185, -5.677449362200451], [0.3727454909819639, -5.6942539381355886], [0.374749498997996, -5.710833969496013], [0.37675350701402804, -5.727188249052835], [0.3787575150300601, -5.7433155695771525], [0.3807615230460922, -5.759214723840073], [0.38276553106212424, -5.774884504612697], [0.38476953907815625, -5.79032370466613], [0.3867735470941883, -5.805531116771476], [0.3887775551102204, -5.820505533699839], [0.39078156312625245, -5.835245748222322], [0.3927855711422845, -5.849750553110027], [0.3947895791583166, -5.86401874113406], [0.39679358717434865, -5.878049105065526], [0.3987975951903807, -5.891840437675525], [0.4008016032064128, -5.905391531735162], [0.40280561122244485, -5.918701180015542], [0.4048096192384769, -5.931768175287769], [0.406813627254509, -5.944591310322945], [0.40881763527054105, -5.957169377892173], [0.4108216432865731, -5.969501170766559], [0.4128256513026052, -5.981585481717207], [0.41482965931863724, -5.993421103515219], [0.4168336673346693, -6.005006828931698], [0.4188376753507014, -6.016341450737749], [0.42084168336673344, -6.027423761704477], [0.4228456913827655, -6.038252554602984], [0.4248496993987976, -6.048826622204373], [0.42685370741482964, -6.059144757279748], [0.4288577154308617, -6.069205752600216], [0.4308617234468938, -6.079008400936877], [0.43286573146292584, -6.088551495060837], [0.4348697394789579, -6.097833827743196], [0.4368737474949899, -6.106854191755063], [0.438877755511022, -6.115611379867539], [0.44088176352705405, -6.124104184851726], [0.4428857715430861, -6.13233139947873], [0.4448897795591182, -6.140291816519654], [0.44689378757515025, -6.147984228745603], [0.4488977955911823, -6.155407428927679], [0.4509018036072144, -6.162560209836985], [0.45290581162324645, -6.169441364244628], [0.4549098196392785, -6.1760496849217095], [0.4569138276553106, -6.182383964639333], [0.45891783567134264, -6.188442996168601], [0.4609218436873747, -6.1942255722806205], [0.4629258517034068, -6.199730485746494], [0.46492985971943884, -6.204956529337324], [0.4669338677354709, -6.209902495824216], [0.468937875751503, -6.214567177978272], [0.47094188376753504, -6.2189493685705965], [0.4729458917835671, -6.223047860372292], [0.4749498997995992, -6.226861446154465], [0.47695390781563124, -6.230388918688217], [0.4789579158316633, -6.2336290707446524], [0.48096192384769537, -6.236580695094873], [0.48296593186372744, -6.239242584509987], [0.4849699398797595, -6.241613531761094], [0.48697394789579157, -6.243692329619299], [0.4889779559118236, -6.245477770855705], [0.49098196392785565, -6.2469686482414195], [0.4929859719438877, -6.248163754547542], [0.4949899799599198, -6.249061882545176], [0.49699398797595185, -6.249661825005426], [0.4989979959919839, -6.2499623746993995], [0.501002004008016, -6.2499623746994], [0.503006012024048, -6.249661825005428], [0.5050100200400801, -6.249061882545176], [0.5070140280561122, -6.248163754547541], [0.5090180360721442, -6.24696864824142], [0.5110220440881763, -6.2454777708557065], [0.5130260521042084, -6.243692329619299], [0.5150300601202404, -6.241613531761094], [0.5170340681362725, -6.239242584509988], [0.5190380761523046, -6.236580695094873], [0.5210420841683366, -6.233629070744651], [0.5230460921843687, -6.230388918688217], [0.5250501002004008, -6.226861446154465], [0.5270541082164328, -6.223047860372292], [0.5290581162324649, -6.218949368570596], [0.531062124248497, -6.214567177978272], [0.533066132264529, -6.209902495824217], [0.5350701402805611, -6.204956529337325], [0.5370741482965932, -6.199730485746494], [0.5390781563126252, -6.194225572280621], [0.5410821643286573, -6.188442996168602], [0.5430861723446894, -6.182383964639333], [0.5450901803607214, -6.1760496849217095], [0.5470941883767535, -6.169441364244629], [0.5490981963927856, -6.162560209836986], [0.5511022044088176, -6.155407428927679], [0.5531062124248497, -6.147984228745602], [0.5551102204408818, -6.140291816519655], [0.5571142284569138, -6.132331399478731], [0.5591182364729459, -6.124104184851726], [0.561122244488978, -6.115611379867538], [0.56312625250501, -6.106854191755064], [0.565130260521042, -6.097833827743197], [0.567134268537074, -6.088551495060837], [0.5691382765531061, -6.079008400936877], [0.5711422845691382, -6.069205752600218], [0.5731462925851702, -6.05914475727975], [0.5751503006012023, -6.0488266222043725], [0.5771543086172344, -6.038252554602984], [0.5791583166332664, -6.027423761704478], [0.5811623246492985, -6.01634145073775], [0.5831663326653306, -6.005006828931698], [0.5851703406813626, -5.993421103515218], [0.5871743486973947, -5.981585481717209], [0.5891783567134268, -5.969501170766561], [0.5911823647294588, -5.957169377892173], [0.5931863727454909, -5.944591310322945], [0.595190380761523, -5.931768175287771], [0.597194388777555, -5.918701180015543], [0.5991983967935871, -5.905391531735162], [0.6012024048096192, -5.891840437675525], [0.6032064128256512, -5.878049105065527], [0.6052104208416833, -5.864018741134061], [0.6072144288577154, -5.849750553110027], [0.6092184368737474, -5.835245748222322], [0.6112224448897795, -5.820505533699841], [0.6132264529058116, -5.805531116771477], [0.6152304609218436, -5.790323704666131], [0.6172344689378757, -5.774884504612698], [0.6192384769539078, -5.759214723840073], [0.6212424849699398, -5.7433155695771525], [0.6232464929859719, -5.727188249052834], [0.625250501002004, -5.710833969496014], [0.627254509018036, -5.6942539381355886], [0.6292585170340681, -5.677449362200451], [0.6312625250501002, -5.660421448919502], [0.6332665330661322, -5.643171405521636], [0.6352705410821643, -5.625700439235749], [0.6372745490981964, -5.608009757290736], [0.6392785571142284, -5.590100566915495], [0.6412825651302605, -5.571974075338923], [0.6432865731462926, -5.5536314897899155], [0.6452905811623246, -5.535074017497366], [0.6472945891783567, -5.516302865690176], [0.6492985971943888, -5.497319241597238], [0.6513026052104208, -5.478124352447452], [0.6533066132264529, -5.458719405469709], [0.655310621242485, -5.439105607892907], [0.657314629258517, -5.419284166945945], [0.6593186372745491, -5.399256289857719], [0.6613226452905812, -5.379023183857122], [0.6633266533066132, -5.358586056173052], [0.6653306613226453, -5.337946114034406], [0.6673346693386772, -5.317104564670083], [0.6693386773547093, -5.296062615308972], [0.6713426853707414, -5.2748214731799745], [0.6733466933867734, -5.253382345511987], [0.6753507014028055, -5.231746439533902], [0.6773547094188376, -5.209914962474618], [0.6793587174348696, -5.187889121563035], [0.6813627254509017, -5.1656701240280425], [0.6833667334669338, -5.143259177098542], [0.6853707414829658, -5.120657488003425], [0.6873747494989979, -5.097866263971592], [0.68937875751503, -5.07488671223194], [0.691382765531062, -5.051720040013362], [0.6933867735470941, -5.028367454544754], [0.6953907815631262, -5.004830163055018], [0.6973947895791582, -4.981109372773042], [0.6993987975951903, -4.957206290927726], [0.7014028056112224, -4.933122124747968], [0.7034068136272544, -4.908858081462664], [0.7054108216432865, -4.884415368300709], [0.7074148296593186, -4.859795192490999], [0.7094188376753506, -4.8349987612624306], [0.7114228456913827, -4.810027281843901], [0.7134268537074148, -4.784881961464306], [0.7154308617234468, -4.759564007352539], [0.7174348697394789, -4.734074626737501], [0.719438877755511, -4.708415026848086], [0.721442885771543, -4.682586414913194], [0.7234468937875751, -4.656589998161713], [0.7254509018036072, -4.630426983822545], [0.7274549098196392, -4.604098579124589], [0.7294589178356713, -4.577605991296733], [0.7314629258517034, -4.55095042756788], [0.7334669338677354, -4.524133095166925], [0.7354709418837675, -4.497155201322761], [0.7374749498997996, -4.470017953264292], [0.7394789579158316, -4.442722558220406], [0.7414829659318637, -4.415270223420001], [0.7434869739478958, -4.387662156091978], [0.7454909819639278, -4.359899563465228], [0.7474949899799599, -4.331983652768648], [0.749498997995992, -4.303915631231137], [0.751503006012024, -4.27569670608159], [0.7535070140280561, -4.247328084548905], [0.7555110220440882, -4.218810973861974], [0.7575150300601202, -4.190146581249696], [0.7595190380761523, -4.161336113940969], [0.7615230460921844, -4.132380779164685], [0.7635270541082164, -4.103281784149743], [0.7655310621242485, -4.074040336125039], [0.7675350701402806, -4.04465764231947], [0.7695390781563125, -4.015134909961933], [0.7715430861723446, -3.9854733462813194], [0.7735470941883766, -3.9556741585065303], [0.7755511022044087, -3.925738553866463], [0.7775551102204408, -3.895667739590008], [0.7795591182364728, -3.8654629229060657], [0.7815631262525049, -3.8351253110435346], [0.783567134268537, -3.8046561112313038], [0.785571142284569, -3.774056530698276], [0.7875751503006011, -3.7433277766733437], [0.7895791583166332, -3.712471056385405], [0.7915831663326652, -3.6814875770633577], [0.7935871743486973, -3.650378545936095], [0.7955911823647294, -3.6191451702325135], [0.7975951903807614, -3.587788657181515], [0.7995991983967935, -3.556310214011989], [0.8016032064128256, -3.5247110479528323], [0.8036072144288576, -3.492992366232942], [0.8056112224448897, -3.4611553760812175], [0.8076152304609218, -3.4292012847265543], [0.8096192384769538, -3.3971312993978473], [0.8116232464929859, -3.3649466273239894], [0.813627254509018, -3.3326484757338863], [0.81563126252505, -3.3002380518564225], [0.8176352705410821, -3.267716562920502], [0.8196392785571142, -3.2350852161550185], [0.8216432865731462, -3.2023452187888686], [0.8236472945891783, -3.169497778050952], [0.8256513026052104, -3.1365441011701622], [0.8276553106212424, -3.1034853953753903], [0.8296593186372745, -3.070322867895544], [0.8316633266533066, -3.037057725959509], [0.8336673346693386, -3.003691176796186], [0.8356713426853707, -2.970224427634471], [0.8376753507014028, -2.9366586857032617], [0.8396793587174348, -2.9029951582314526], [0.8416833667334669, -2.8692350524479395], [0.843687374749499, -2.8353795755816207], [0.845691382765531, -2.8014299348613907], [0.8476953907815631, -2.7673873375161473], [0.8496993987975952, -2.733252990774784], [0.8517034068136272, -2.6990281018662], [0.8537074148296593, -2.6647138780192887], [0.8557114228456913, -2.6303115264629535], [0.8577154308617234, -2.595822254426081], [0.8597194388777555, -2.561247269137575], [0.8617234468937875, -2.526587777826328], [0.8637274549098196, -2.4918449877212367], [0.8657314629258517, -2.4570201060511954], [0.8677354709418837, -2.4221143400451037], [0.8697394789579158, -2.387128896931859], [0.8717434869739479, -2.3520649839403553], [0.8737474949899798, -2.3169238082994896], [0.8757515030060119, -2.281706577238154], [0.877755511022044, -2.2464144979852554], [0.879759519038076, -2.2110487777696783], [0.8817635270541081, -2.1756106238203214], [0.8837675350701402, -2.1401012433660904], [0.8857715430861722, -2.1045218436358684], [0.8877755511022043, -2.0688736318585588], [0.8897795591182364, -2.03315781526306], [0.8917835671342684, -1.9973756010782615], [0.8937875751503005, -1.9615281965330695], [0.8957915831663326, -1.9256168088563674], [0.8977955911823646, -1.889642645277063], [0.8997995991983967, -1.853606913024047], [0.9018036072144288, -1.817510819326216], [0.9038076152304608, -1.7813555714124643], [0.9058116232464929, -1.745142376511693], [0.907815631262525, -1.708872441852794], [0.909819639278557, -1.6725469746646688], [0.9118236472945891, -1.6361671821762098], [0.9138276553106212, -1.599734271616314], [0.9158316633266532, -1.56324945021388], [0.9178356713426853, -1.5267139251977973], [0.9198396793587174, -1.4901289037969696], [0.9218436873747494, -1.4534955932402887], [0.9238476953907815, -1.4168152007566537], [0.9258517034068136, -1.3800889335749613], [0.9278557114228456, -1.343317998924102], [0.9298597194388777, -1.3065036040329785], [0.9318637274549098, -1.2696469561304866], [0.9338677354709418, -1.2327492624455185], [0.9358717434869739, -1.1958117302069755], [0.937875751503006, -1.158835566643749], [0.939879759519038, -1.121821978984737], [0.9418837675350701, -1.0847721744588381], [0.9438877755511021, -1.0476873602949452], [0.9458917835671342, -1.0105687437219577], [0.9478957915831663, -0.9734175319687712], [0.9498997995991983, -0.9362349322642807], [0.9519038076152304, -0.8990221518373795], [0.9539078156312625, -0.8617803979169705], [0.9559118236472945, -0.824510877731946], [0.9579158316633266, -0.7872147985112037], [0.9599198396793587, -0.7498933674836396], [0.9619238476953907, -0.712547791878148], [0.9639278557114228, -0.6751792789236308], [0.9659318637274549, -0.6377890358489763], [0.9679358717434869, -0.6003782698830854], [0.969939879759519, -0.562948188254854], [0.9719438877755511, -0.5254999981931804], [0.9739478957915831, -0.4880349069269583], [0.9759519038076151, -0.4505541216850852], [0.9779559118236472, -0.4130588496964537], [0.9799599198396792, -0.3755502981899674], [0.9819639278557113, -0.3380296743945147], [0.9839679358717434, -0.30049818553899577], [0.9859719438877754, -0.2629570388523079], [0.9879759519038075, -0.22540744156334463], [0.9899799599198396, -0.18785060090100308], [0.9919839679358716, -0.15028772409417873], [0.9939879759519037, -0.11272001837176956], [0.9959919839679358, -0.07514869096267654], [0.9979959919839678, -0.037574949095788714], [1.0, -0.0]]}, \"id\": \"el5494140094544526032\"});\n",
        "      });\n",
        "    });\n",
        "}else{\n",
        "    // require.js not available: dynamically load d3 & mpld3\n",
        "    mpld3_load_lib(\"https://mpld3.github.io/js/d3.v3.min.js\", function(){\n",
        "         mpld3_load_lib(\"https://mpld3.github.io/js/mpld3.v0.2.js\", function(){\n",
        "                 \n",
        "\n",
        "var LineModel = Backbone.Model.extend({\n",
        "\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        this.on(\"change:sliderPosition\", this.modelChanged);\n",
        "        this.on(\"change:boundaryCondition\", this.notImplemented);\n",
        "        this.on(\"change:youngsModulus\", this.notImplemented);\n",
        "        this.on(\"change:useFEM\", this.notImplemented);\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        This example should be quite easy to extend to use more inputs. You\n",
        "        just have to pass more model.get('...') things to kernel execute command below.\n",
        "    */\n",
        "    notImplemented: function(model) {\n",
        "        alert(\"This function is not implemented in the example on purpose.\");\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Model changed, execute notebook kernel and update model data.\n",
        "    */\n",
        "    modelChanged: function(model) {\n",
        "        var command = this.options.callback_func + \"(\" + model.get('sliderPosition') + \")\";\n",
        "        console.log(\"IPython kernel execute \"+command);\n",
        "        var callbacks = {\n",
        "            'iopub' : {\n",
        "                'output' : function(out) {\n",
        "                    //console.log(out);\n",
        "                    var res = null;\n",
        "                    // if output is a print statement\n",
        "                    if (out.msg_type == \"stream\"){\n",
        "                      res = out.content.data;\n",
        "                    }\n",
        "                    // if output is a python object\n",
        "                    else if(out.msg_type === \"pyout\"){\n",
        "                      res = out.content.data[\"text/plain\"];\n",
        "                    }\n",
        "                    // if output is a python error\n",
        "                    else if(out.msg_type == \"pyerr\"){\n",
        "                      res = out.content.ename + \": \" + out.content.evalue;\n",
        "                      alert(res);\n",
        "                    }\n",
        "                    // if output is something we haven't thought of\n",
        "                    else{\n",
        "                      res = \"[out type not implemented]\";\n",
        "                      alert(res);\n",
        "                    }\n",
        "                    model.set(\"line\", JSON.parse(res));\n",
        "                }\n",
        "            }\n",
        "        };\n",
        "        IPython.notebook.kernel.execute(command, callbacks, {silent:false});\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "\n",
        "var ToolsView = Backbone.View.extend({\n",
        "\n",
        "    /**\n",
        "        This view renders toolbar with slider and other html elements.\n",
        "    */\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        _.bindAll(this, 'render');\n",
        "    },\n",
        "\n",
        "    render: function() {\n",
        "        var template = _.template($(\"#tools-template\").html(), {});\n",
        "        $(this.el).append(template);\n",
        "        return this;\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Listen event changes.\n",
        "    */\n",
        "    events: {\n",
        "        \"change #slider1\": \"changeSlider1\",\n",
        "        \"change #boundary_conditions\": \"changeBoundaryConditions\",\n",
        "        \"change #young\": \"changeModulus\",\n",
        "        \"change #useFEM\": \"changeUseFEM\"\n",
        "    },\n",
        "\n",
        "    changeSlider1: function(ev) {\n",
        "        var sliderPosition = $(ev.currentTarget).val();\n",
        "        this.model.set('sliderPosition', sliderPosition);\n",
        "        $(this.el).find(\"#slider1label\").text(parseFloat(sliderPosition).toFixed(2));\n",
        "    },\n",
        "\n",
        "    changeBoundaryConditions: function(ev) {\n",
        "        this.model.set('boundaryCondition', $(ev.currentTarget).val());\n",
        "    },\n",
        "\n",
        "    changeModulus: function(ev) {\n",
        "        this.model.set('youngsModulus', $(ev.currentTarget).val());\n",
        "    },\n",
        "\n",
        "    changeUseFEM: function(ev) {\n",
        "        var isChecked = $(ev.currentTarget).is(\":checked\");\n",
        "        this.model.set('useFEM', isChecked);\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "var CanvasView = Backbone.View.extend({\n",
        "\n",
        "    initialize: function(options) {\n",
        "        this.options = options || {};\n",
        "        this.line = mpld3.get_element(this.options.props.idline);\n",
        "        _.bindAll(this, 'render');\n",
        "        this.model.bind('change:line', this.render);\n",
        "    },\n",
        "\n",
        "    /**\n",
        "        Update line when model changes, f.e. new data is calculated\n",
        "        inside notebook and updated to Backbone model.\n",
        "    */\n",
        "    render: function() {\n",
        "        this.line.elements().transition()\n",
        "            .attr(\"d\", this.line.datafunc(this.model.get('line')))\n",
        "            .style(\"stroke\", \"black\");\n",
        "    }\n",
        "\n",
        "});\n",
        "\n",
        "// PLUGIN START\n",
        "\n",
        "mpld3.register_plugin(\"myuserinterface\", MyUserInterfacePlugin);\n",
        "MyUserInterfacePlugin.prototype = Object.create(mpld3.Plugin.prototype);\n",
        "MyUserInterfacePlugin.prototype.constructor = MyUserInterfacePlugin;\n",
        "MyUserInterfacePlugin.prototype.requiredProps = [\"idline\", \"callback_func\"];\n",
        "MyUserInterfacePlugin.prototype.defaultProps = {}\n",
        "\n",
        "function MyUserInterfacePlugin(fig, props){\n",
        "    mpld3.Plugin.call(this, fig, props);\n",
        "};\n",
        "\n",
        "MyUserInterfacePlugin.prototype.draw = function() {\n",
        "\n",
        "    // Some hacking to get proper layout.\n",
        "    var div = $(\"#\" + this.fig.figid).attr(\"style\", \"border: 1px solid;\");\n",
        "    var figdiv = div.find(\"div\");\n",
        "    figdiv.attr(\"style\", \"display: inline;\");\n",
        "\n",
        "    // Create LineModel\n",
        "    var lineModel = new LineModel({\n",
        "      callback_func: this.props.callback_func\n",
        "    });\n",
        "\n",
        "    // Create tools view\n",
        "    var myel = $('<div style=\"float: left; margin: 10px 30px;\" id=\"tools\"></div>');\n",
        "    div.append(myel);\n",
        "    var toolsView = new ToolsView({\n",
        "        el: myel,\n",
        "        model: lineModel\n",
        "    });\n",
        "    toolsView.render();\n",
        "\n",
        "    // Create canvas view which updates line visualization when the model is changed\n",
        "    var canvasView = new CanvasView({\n",
        "        el: figdiv,\n",
        "        model: lineModel,\n",
        "        props: this.props\n",
        "    });\n",
        "\n",
        "};\n",
        "\n",
        "                 mpld3.draw_figure(\"fig_el54941400945445260328126322641\", {\"axes\": [{\"xlim\": [-0.20000000000000001, 1.2000000000000002], \"yscale\": \"linear\", \"axesbg\": \"#FFFFFF\", \"texts\": [{\"v_baseline\": \"hanging\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"x [m]\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [0.5, -0.080645161290322578], \"rotation\": -0.0, \"id\": \"el5494140094544612624\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Deflection [mm]\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 10.0, \"position\": [-0.063823084677419359, 0.5], \"rotation\": -90.0, \"id\": \"el5494140094545512208\"}, {\"v_baseline\": \"auto\", \"h_anchor\": \"middle\", \"color\": \"#000000\", \"text\": \"Euler-Bernoulli beam deflection line\", \"coordinates\": \"axes\", \"zorder\": 3, \"alpha\": 1, \"fontsize\": 12.0, \"position\": [0.5, 1.0224014336917562], \"rotation\": -0.0, \"id\": \"el5494140094545727760\"}], \"zoomable\": true, \"images\": [], \"xdomain\": [-0.20000000000000001, 1.2000000000000002], \"ylim\": [-10.0, 5.0], \"paths\": [], \"sharey\": [], \"sharex\": [], \"axesbgalpha\": null, \"axes\": [{\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"color\": \"#000000\", \"alpha\": 0.2, \"dasharray\": \"2,2\", \"gridOn\": true}, \"fontsize\": 10.0, \"position\": \"bottom\", \"nticks\": 9, \"tickvalues\": null}, {\"scale\": \"linear\", \"tickformat\": null, \"grid\": {\"color\": \"#000000\", \"alpha\": 0.2, \"dasharray\": \"2,2\", \"gridOn\": true}, \"fontsize\": 10.0, \"position\": \"left\", \"nticks\": 9, \"tickvalues\": null}], \"lines\": [{\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 0.5, \"xindex\": 0, \"linewidth\": 3, \"data\": \"data01\", \"id\": \"el5494140094545417424\"}, {\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 1, \"xindex\": 0, \"linewidth\": 1, \"data\": \"data02\", \"id\": \"el5494140094545417296\"}, {\"color\": \"#000000\", \"yindex\": 1, \"coordinates\": \"data\", \"dasharray\": \"10,0\", \"zorder\": 2, \"alpha\": 1, \"xindex\": 2, \"linewidth\": 1, \"data\": \"data02\", \"id\": \"el5494140094545418000\"}], \"markers\": [], \"id\": \"el5494140094544526992\", \"ydomain\": [-10.0, 5.0], \"collections\": [], \"xscale\": \"linear\", \"bbox\": [0.125, 0.125, 0.77500000000000002, 0.77500000000000002]}], \"height\": 320.0, \"width\": 640.0, \"plugins\": [{\"type\": \"reset\"}, {\"enabled\": false, \"button\": true, \"type\": \"zoom\"}, {\"enabled\": false, \"button\": true, \"type\": \"boxzoom\"}, {\"idline\": \"el5494140094545417424\", \"type\": \"myuserinterface\", \"callback_func\": \"runCalculation\"}], \"data\": {\"data02\": [[0.975, -1.0, -0.025], [1.025, -1.0, 0.025], [1.0, 0.0, 0.0], [0.975, -1.0, -0.025]], \"data01\": [[0.0, -0.0], [0.002004008016032064, -0.037574949095785154], [0.004008016032064128, -0.075148690962674], [0.0060120240480961915, -0.11272001837177029], [0.008016032064128256, -0.1502877240941777], [0.01002004008016032, -0.187850600901], [0.012024048096192383, -0.2254074415633408], [0.014028056112224447, -0.26295703885230387], [0.01603206412825651, -0.300498185538993], [0.018036072144288574, -0.3380296743945117], [0.02004008016032064, -0.37555029818996394], [0.022044088176352703, -0.4130588496964532], [0.024048096192384766, -0.4505541216850832], [0.026052104208416832, -0.4880349069269579], [0.028056112224448895, -0.5254999981931807], [0.03006012024048096, -0.5629481882548556], [0.03206412825651302, -0.600378269883086], [0.03406813627254509, -0.637789035848976], [0.03607214428857715, -0.6751792789236288], [0.038076152304609215, -0.7125477918781487], [0.04008016032064128, -0.749893367483639], [0.04208416833667334, -0.7872147985112035], [0.044088176352705406, -0.8245108777319458], [0.04609218436873747, -0.8617803979169701], [0.04809619238476953, -0.8990221518373793], [0.0501002004008016, -0.9362349322642778], [0.052104208416833664, -0.9734175319687692], [0.05410821643286573, -1.010568743721957], [0.05611222444889779, -1.047687360294945], [0.058116232464929855, -1.0847721744588368], [0.06012024048096192, -1.1218219789847361], [0.06212424849699398, -1.158835566643747], [0.06412825651302605, -1.195811730206973], [0.06613226452905811, -1.2327492624455179], [0.06813627254509018, -1.2696469561304848], [0.07014028056112225, -1.3065036040329783], [0.0721442885771543, -1.3433179989241015], [0.07414829659318636, -1.3800889335749582], [0.07615230460921843, -1.4168152007566526], [0.0781563126252505, -1.4534955932402875], [0.08016032064128256, -1.4901289037969674], [0.08216432865731463, -1.526713925197796], [0.08416833667334668, -1.5632494502138763], [0.08617234468937875, -1.5997342716163128], [0.08817635270541081, -1.6361671821762087], [0.09018036072144288, -1.672546974664668], [0.09218436873747494, -1.708872441852794], [0.09418837675350701, -1.7451423765116914], [0.09619238476953906, -1.7813555714124623], [0.09819639278557113, -1.8175108193262117], [0.1002004008016032, -1.8536069130240433], [0.10220440881763526, -1.88964264527706], [0.10420841683366733, -1.9256168088563665], [0.1062124248496994, -1.9615281965330655], [0.10821643286573146, -1.9973756010782615], [0.11022044088176351, -2.0331578152630576], [0.11222444889779558, -2.068873631858558], [0.11422845691382764, -2.104521843635866], [0.11623246492985971, -2.1401012433660855], [0.11823647294589178, -2.175610623820321], [0.12024048096192384, -2.211048777769675], [0.1222444889779559, -2.2464144979852514], [0.12424849699398796, -2.281706577238154], [0.12625250501002003, -2.3169238082994874], [0.1282565130260521, -2.3520649839403545], [0.13026052104208416, -2.387128896931859], [0.13226452905811623, -2.4221143400451046], [0.1342685370741483, -2.4570201060511954], [0.13627254509018036, -2.4918449877212345], [0.13827655310621242, -2.526587777826326], [0.1402805611222445, -2.5612472691375743], [0.14228456913827653, -2.595822254426081], [0.1442885771543086, -2.6303115264629526], [0.14629258517034066, -2.66471387801929], [0.14829659318637273, -2.6990281018661997], [0.1503006012024048, -2.7332529907747833], [0.15230460921843686, -2.7673873375161455], [0.15430861723446893, -2.8014299348613894], [0.156312625250501, -2.8353795755816193], [0.15831663326653306, -2.8692350524479386], [0.16032064128256512, -2.9029951582314513], [0.1623246492985972, -2.936658685703261], [0.16432865731462926, -2.970224427634471], [0.16633266533066132, -3.003691176796185], [0.16833667334669336, -3.037057725959507], [0.17034068136272543, -3.070322867895541], [0.1723446893787575, -3.1034853953753907], [0.17434869739478956, -3.13654410117016], [0.17635270541082163, -3.169497778050951], [0.1783567134268537, -3.2023452187888695], [0.18036072144288576, -3.2350852161550185], [0.18236472945891782, -3.2677165629205005], [0.1843687374749499, -3.3002380518564207], [0.18637274549098196, -3.332648475733882], [0.18837675350701402, -3.3649466273239894], [0.1903807615230461, -3.3971312993978446], [0.19238476953907813, -3.429201284726553], [0.1943887775551102, -3.461155376081217], [0.19639278557114226, -3.492992366232942], [0.19839679358717432, -3.52471104795283], [0.2004008016032064, -3.5563102140119853], [0.20240480961923846, -3.587788657181512], [0.20440881763527052, -3.6191451702325135], [0.2064128256513026, -3.6503785459360936], [0.20841683366733466, -3.681487577063356], [0.21042084168336672, -3.7124710563854038], [0.2124248496993988, -3.7433277766733424], [0.21442885771543085, -3.7740565306982736], [0.21643286573146292, -3.804656111231302], [0.21843687374749496, -3.83512531104353], [0.22044088176352702, -3.865462922906064], [0.2224448897795591, -3.8956677395900066], [0.22444889779559116, -3.92573855386646], [0.22645290581162322, -3.9556741585065303], [0.2284569138276553, -3.9854733462813186], [0.23046092184368736, -4.015134909961931], [0.23246492985971942, -4.0446576423194704], [0.2344689378757515, -4.074040336125039], [0.23647294589178355, -4.103281784149742], [0.23847695390781562, -4.132380779164685], [0.24048096192384769, -4.161336113940967], [0.24248496993987975, -4.190146581249696], [0.2444889779559118, -4.218810973861973], [0.24649298597194386, -4.247328084548903], [0.24849699398797592, -4.27569670608159], [0.250501002004008, -4.3039156312311375], [0.25250501002004005, -4.331983652768647], [0.2545090180360721, -4.359899563465226], [0.2565130260521042, -4.3876621560919755], [0.25851703406813625, -4.415270223420001], [0.2605210420841683, -4.442722558220404], [0.2625250501002004, -4.47001795326429], [0.26452905811623245, -4.497155201322762], [0.2665330661322645, -4.524133095166925], [0.2685370741482966, -4.550950427567879], [0.27054108216432865, -4.577605991296733], [0.2725450901803607, -4.604098579124586], [0.2745490981963928, -4.630426983822546], [0.27655310621242485, -4.656589998161712], [0.2785571142284569, -4.682586414913192], [0.280561122244489, -4.708415026848087], [0.282565130260521, -4.734074626737501], [0.28456913827655306, -4.759564007352538], [0.2865731462925851, -4.784881961464303], [0.2885771543086172, -4.810027281843899], [0.29058116232464926, -4.834998761262429], [0.2925851703406813, -4.8597951924909975], [0.2945891783567134, -4.884415368300707], [0.29659318637274545, -4.908858081462663], [0.2985971943887775, -4.9331221247479675], [0.3006012024048096, -4.957206290927725], [0.30260521042084165, -4.98110937277304], [0.3046092184368737, -5.004830163055015], [0.3066132264529058, -5.028367454544754], [0.30861723446893785, -5.05172004001336], [0.3106212424849699, -5.0748867122319385], [0.312625250501002, -5.097866263971592], [0.31462925851703405, -5.120657488003425], [0.3166332665330661, -5.14325917709854], [0.3186372745490982, -5.165670124028041], [0.32064128256513025, -5.187889121563033], [0.3226452905811623, -5.209914962474618], [0.3246492985971944, -5.231746439533901], [0.32665330661322645, -5.253382345511985], [0.3286573146292585, -5.274821473179974], [0.3306613226452906, -5.296062615308971], [0.33266533066132264, -5.317104564670081], [0.33466933867735466, -5.337946114034406], [0.3366733466933867, -5.358586056173053], [0.3386773547094188, -5.379023183857121], [0.34068136272545085, -5.3992562898577185], [0.3426853707414829, -5.419284166945945], [0.344689378757515, -5.439105607892908], [0.34669338677354705, -5.458719405469707], [0.3486973947895791, -5.478124352447451], [0.3507014028056112, -5.497319241597237], [0.35270541082164325, -5.516302865690177], [0.3547094188376753, -5.535074017497365], [0.3567134268537074, -5.553631489789915], [0.35871743486973945, -5.571974075338922], [0.3607214428857715, -5.590100566915495], [0.3627254509018036, -5.608009757290734], [0.36472945891783565, -5.6257004392357475], [0.3667334669338677, -5.643171405521635], [0.3687374749498998, -5.660421448919502], [0.37074148296593185, -5.677449362200451], [0.3727454909819639, -5.6942539381355886], [0.374749498997996, -5.710833969496013], [0.37675350701402804, -5.727188249052835], [0.3787575150300601, -5.7433155695771525], [0.3807615230460922, -5.759214723840073], [0.38276553106212424, -5.774884504612697], [0.38476953907815625, -5.79032370466613], [0.3867735470941883, -5.805531116771476], [0.3887775551102204, -5.820505533699839], [0.39078156312625245, -5.835245748222322], [0.3927855711422845, -5.849750553110027], [0.3947895791583166, -5.86401874113406], [0.39679358717434865, -5.878049105065526], [0.3987975951903807, -5.891840437675525], [0.4008016032064128, -5.905391531735162], [0.40280561122244485, -5.918701180015542], [0.4048096192384769, -5.931768175287769], [0.406813627254509, -5.944591310322945], [0.40881763527054105, -5.957169377892173], [0.4108216432865731, -5.969501170766559], [0.4128256513026052, -5.981585481717207], [0.41482965931863724, -5.993421103515219], [0.4168336673346693, -6.005006828931698], [0.4188376753507014, -6.016341450737749], [0.42084168336673344, -6.027423761704477], [0.4228456913827655, -6.038252554602984], [0.4248496993987976, -6.048826622204373], [0.42685370741482964, -6.059144757279748], [0.4288577154308617, -6.069205752600216], [0.4308617234468938, -6.079008400936877], [0.43286573146292584, -6.088551495060837], [0.4348697394789579, -6.097833827743196], [0.4368737474949899, -6.106854191755063], [0.438877755511022, -6.115611379867539], [0.44088176352705405, -6.124104184851726], [0.4428857715430861, -6.13233139947873], [0.4448897795591182, -6.140291816519654], [0.44689378757515025, -6.147984228745603], [0.4488977955911823, -6.155407428927679], [0.4509018036072144, -6.162560209836985], [0.45290581162324645, -6.169441364244628], [0.4549098196392785, -6.1760496849217095], [0.4569138276553106, -6.182383964639333], [0.45891783567134264, -6.188442996168601], [0.4609218436873747, -6.1942255722806205], [0.4629258517034068, -6.199730485746494], [0.46492985971943884, -6.204956529337324], [0.4669338677354709, -6.209902495824216], [0.468937875751503, -6.214567177978272], [0.47094188376753504, -6.2189493685705965], [0.4729458917835671, -6.223047860372292], [0.4749498997995992, -6.226861446154465], [0.47695390781563124, -6.230388918688217], [0.4789579158316633, -6.2336290707446524], [0.48096192384769537, -6.236580695094873], [0.48296593186372744, -6.239242584509987], [0.4849699398797595, -6.241613531761094], [0.48697394789579157, -6.243692329619299], [0.4889779559118236, -6.245477770855705], [0.49098196392785565, -6.2469686482414195], [0.4929859719438877, -6.248163754547542], [0.4949899799599198, -6.249061882545176], [0.49699398797595185, -6.249661825005426], [0.4989979959919839, -6.2499623746993995], [0.501002004008016, -6.2499623746994], [0.503006012024048, -6.249661825005428], [0.5050100200400801, -6.249061882545176], [0.5070140280561122, -6.248163754547541], [0.5090180360721442, -6.24696864824142], [0.5110220440881763, -6.2454777708557065], [0.5130260521042084, -6.243692329619299], [0.5150300601202404, -6.241613531761094], [0.5170340681362725, -6.239242584509988], [0.5190380761523046, -6.236580695094873], [0.5210420841683366, -6.233629070744651], [0.5230460921843687, -6.230388918688217], [0.5250501002004008, -6.226861446154465], [0.5270541082164328, -6.223047860372292], [0.5290581162324649, -6.218949368570596], [0.531062124248497, -6.214567177978272], [0.533066132264529, -6.209902495824217], [0.5350701402805611, -6.204956529337325], [0.5370741482965932, -6.199730485746494], [0.5390781563126252, -6.194225572280621], [0.5410821643286573, -6.188442996168602], [0.5430861723446894, -6.182383964639333], [0.5450901803607214, -6.1760496849217095], [0.5470941883767535, -6.169441364244629], [0.5490981963927856, -6.162560209836986], [0.5511022044088176, -6.155407428927679], [0.5531062124248497, -6.147984228745602], [0.5551102204408818, -6.140291816519655], [0.5571142284569138, -6.132331399478731], [0.5591182364729459, -6.124104184851726], [0.561122244488978, -6.115611379867538], [0.56312625250501, -6.106854191755064], [0.565130260521042, -6.097833827743197], [0.567134268537074, -6.088551495060837], [0.5691382765531061, -6.079008400936877], [0.5711422845691382, -6.069205752600218], [0.5731462925851702, -6.05914475727975], [0.5751503006012023, -6.0488266222043725], [0.5771543086172344, -6.038252554602984], [0.5791583166332664, -6.027423761704478], [0.5811623246492985, -6.01634145073775], [0.5831663326653306, -6.005006828931698], [0.5851703406813626, -5.993421103515218], [0.5871743486973947, -5.981585481717209], [0.5891783567134268, -5.969501170766561], [0.5911823647294588, -5.957169377892173], [0.5931863727454909, -5.944591310322945], [0.595190380761523, -5.931768175287771], [0.597194388777555, -5.918701180015543], [0.5991983967935871, -5.905391531735162], [0.6012024048096192, -5.891840437675525], [0.6032064128256512, -5.878049105065527], [0.6052104208416833, -5.864018741134061], [0.6072144288577154, -5.849750553110027], [0.6092184368737474, -5.835245748222322], [0.6112224448897795, -5.820505533699841], [0.6132264529058116, -5.805531116771477], [0.6152304609218436, -5.790323704666131], [0.6172344689378757, -5.774884504612698], [0.6192384769539078, -5.759214723840073], [0.6212424849699398, -5.7433155695771525], [0.6232464929859719, -5.727188249052834], [0.625250501002004, -5.710833969496014], [0.627254509018036, -5.6942539381355886], [0.6292585170340681, -5.677449362200451], [0.6312625250501002, -5.660421448919502], [0.6332665330661322, -5.643171405521636], [0.6352705410821643, -5.625700439235749], [0.6372745490981964, -5.608009757290736], [0.6392785571142284, -5.590100566915495], [0.6412825651302605, -5.571974075338923], [0.6432865731462926, -5.5536314897899155], [0.6452905811623246, -5.535074017497366], [0.6472945891783567, -5.516302865690176], [0.6492985971943888, -5.497319241597238], [0.6513026052104208, -5.478124352447452], [0.6533066132264529, -5.458719405469709], [0.655310621242485, -5.439105607892907], [0.657314629258517, -5.419284166945945], [0.6593186372745491, -5.399256289857719], [0.6613226452905812, -5.379023183857122], [0.6633266533066132, -5.358586056173052], [0.6653306613226453, -5.337946114034406], [0.6673346693386772, -5.317104564670083], [0.6693386773547093, -5.296062615308972], [0.6713426853707414, -5.2748214731799745], [0.6733466933867734, -5.253382345511987], [0.6753507014028055, -5.231746439533902], [0.6773547094188376, -5.209914962474618], [0.6793587174348696, -5.187889121563035], [0.6813627254509017, -5.1656701240280425], [0.6833667334669338, -5.143259177098542], [0.6853707414829658, -5.120657488003425], [0.6873747494989979, -5.097866263971592], [0.68937875751503, -5.07488671223194], [0.691382765531062, -5.051720040013362], [0.6933867735470941, -5.028367454544754], [0.6953907815631262, -5.004830163055018], [0.6973947895791582, -4.981109372773042], [0.6993987975951903, -4.957206290927726], [0.7014028056112224, -4.933122124747968], [0.7034068136272544, -4.908858081462664], [0.7054108216432865, -4.884415368300709], [0.7074148296593186, -4.859795192490999], [0.7094188376753506, -4.8349987612624306], [0.7114228456913827, -4.810027281843901], [0.7134268537074148, -4.784881961464306], [0.7154308617234468, -4.759564007352539], [0.7174348697394789, -4.734074626737501], [0.719438877755511, -4.708415026848086], [0.721442885771543, -4.682586414913194], [0.7234468937875751, -4.656589998161713], [0.7254509018036072, -4.630426983822545], [0.7274549098196392, -4.604098579124589], [0.7294589178356713, -4.577605991296733], [0.7314629258517034, -4.55095042756788], [0.7334669338677354, -4.524133095166925], [0.7354709418837675, -4.497155201322761], [0.7374749498997996, -4.470017953264292], [0.7394789579158316, -4.442722558220406], [0.7414829659318637, -4.415270223420001], [0.7434869739478958, -4.387662156091978], [0.7454909819639278, -4.359899563465228], [0.7474949899799599, -4.331983652768648], [0.749498997995992, -4.303915631231137], [0.751503006012024, -4.27569670608159], [0.7535070140280561, -4.247328084548905], [0.7555110220440882, -4.218810973861974], [0.7575150300601202, -4.190146581249696], [0.7595190380761523, -4.161336113940969], [0.7615230460921844, -4.132380779164685], [0.7635270541082164, -4.103281784149743], [0.7655310621242485, -4.074040336125039], [0.7675350701402806, -4.04465764231947], [0.7695390781563125, -4.015134909961933], [0.7715430861723446, -3.9854733462813194], [0.7735470941883766, -3.9556741585065303], [0.7755511022044087, -3.925738553866463], [0.7775551102204408, -3.895667739590008], [0.7795591182364728, -3.8654629229060657], [0.7815631262525049, -3.8351253110435346], [0.783567134268537, -3.8046561112313038], [0.785571142284569, -3.774056530698276], [0.7875751503006011, -3.7433277766733437], [0.7895791583166332, -3.712471056385405], [0.7915831663326652, -3.6814875770633577], [0.7935871743486973, -3.650378545936095], [0.7955911823647294, -3.6191451702325135], [0.7975951903807614, -3.587788657181515], [0.7995991983967935, -3.556310214011989], [0.8016032064128256, -3.5247110479528323], [0.8036072144288576, -3.492992366232942], [0.8056112224448897, -3.4611553760812175], [0.8076152304609218, -3.4292012847265543], [0.8096192384769538, -3.3971312993978473], [0.8116232464929859, -3.3649466273239894], [0.813627254509018, -3.3326484757338863], [0.81563126252505, -3.3002380518564225], [0.8176352705410821, -3.267716562920502], [0.8196392785571142, -3.2350852161550185], [0.8216432865731462, -3.2023452187888686], [0.8236472945891783, -3.169497778050952], [0.8256513026052104, -3.1365441011701622], [0.8276553106212424, -3.1034853953753903], [0.8296593186372745, -3.070322867895544], [0.8316633266533066, -3.037057725959509], [0.8336673346693386, -3.003691176796186], [0.8356713426853707, -2.970224427634471], [0.8376753507014028, -2.9366586857032617], [0.8396793587174348, -2.9029951582314526], [0.8416833667334669, -2.8692350524479395], [0.843687374749499, -2.8353795755816207], [0.845691382765531, -2.8014299348613907], [0.8476953907815631, -2.7673873375161473], [0.8496993987975952, -2.733252990774784], [0.8517034068136272, -2.6990281018662], [0.8537074148296593, -2.6647138780192887], [0.8557114228456913, -2.6303115264629535], [0.8577154308617234, -2.595822254426081], [0.8597194388777555, -2.561247269137575], [0.8617234468937875, -2.526587777826328], [0.8637274549098196, -2.4918449877212367], [0.8657314629258517, -2.4570201060511954], [0.8677354709418837, -2.4221143400451037], [0.8697394789579158, -2.387128896931859], [0.8717434869739479, -2.3520649839403553], [0.8737474949899798, -2.3169238082994896], [0.8757515030060119, -2.281706577238154], [0.877755511022044, -2.2464144979852554], [0.879759519038076, -2.2110487777696783], [0.8817635270541081, -2.1756106238203214], [0.8837675350701402, -2.1401012433660904], [0.8857715430861722, -2.1045218436358684], [0.8877755511022043, -2.0688736318585588], [0.8897795591182364, -2.03315781526306], [0.8917835671342684, -1.9973756010782615], [0.8937875751503005, -1.9615281965330695], [0.8957915831663326, -1.9256168088563674], [0.8977955911823646, -1.889642645277063], [0.8997995991983967, -1.853606913024047], [0.9018036072144288, -1.817510819326216], [0.9038076152304608, -1.7813555714124643], [0.9058116232464929, -1.745142376511693], [0.907815631262525, -1.708872441852794], [0.909819639278557, -1.6725469746646688], [0.9118236472945891, -1.6361671821762098], [0.9138276553106212, -1.599734271616314], [0.9158316633266532, -1.56324945021388], [0.9178356713426853, -1.5267139251977973], [0.9198396793587174, -1.4901289037969696], [0.9218436873747494, -1.4534955932402887], [0.9238476953907815, -1.4168152007566537], [0.9258517034068136, -1.3800889335749613], [0.9278557114228456, -1.343317998924102], [0.9298597194388777, -1.3065036040329785], [0.9318637274549098, -1.2696469561304866], [0.9338677354709418, -1.2327492624455185], [0.9358717434869739, -1.1958117302069755], [0.937875751503006, -1.158835566643749], [0.939879759519038, -1.121821978984737], [0.9418837675350701, -1.0847721744588381], [0.9438877755511021, -1.0476873602949452], [0.9458917835671342, -1.0105687437219577], [0.9478957915831663, -0.9734175319687712], [0.9498997995991983, -0.9362349322642807], [0.9519038076152304, -0.8990221518373795], [0.9539078156312625, -0.8617803979169705], [0.9559118236472945, -0.824510877731946], [0.9579158316633266, -0.7872147985112037], [0.9599198396793587, -0.7498933674836396], [0.9619238476953907, -0.712547791878148], [0.9639278557114228, -0.6751792789236308], [0.9659318637274549, -0.6377890358489763], [0.9679358717434869, -0.6003782698830854], [0.969939879759519, -0.562948188254854], [0.9719438877755511, -0.5254999981931804], [0.9739478957915831, -0.4880349069269583], [0.9759519038076151, -0.4505541216850852], [0.9779559118236472, -0.4130588496964537], [0.9799599198396792, -0.3755502981899674], [0.9819639278557113, -0.3380296743945147], [0.9839679358717434, -0.30049818553899577], [0.9859719438877754, -0.2629570388523079], [0.9879759519038075, -0.22540744156334463], [0.9899799599198396, -0.18785060090100308], [0.9919839679358716, -0.15028772409417873], [0.9939879759519037, -0.11272001837176956], [0.9959919839679358, -0.07514869096267654], [0.9979959919839678, -0.037574949095788714], [1.0, -0.0]]}, \"id\": \"el5494140094544526032\"});\n",
        "            })\n",
        "         });\n",
        "}\n",
        "</script>"
       ],
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f6a4d8fbad0>"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "**Note**: this notebook makes interactive calculation when slider position is changed, so you need to download this notebook to see any changes in plot."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "**Note 2**: The line is updated only when force location is changed, but it should be trivial to extend this example use more tools. "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 6
    }
   ],
   "metadata": {}
  }
 ]
}